我写了一个美化 git log 输出的函数(解决 git log 输出中数据和时间用不同颜色提到的问题)。
function gl() {
my_date=();
my_time=();
while IFS= read -r line; do
my_date+=( $(date +"%d-%m-%Y" -d @$line) )
my_time+=($(date +"%H:%M" -d @$line))
done < <( git log --format="%at" )
for (( n=0; n<${#my_date[@]}; n++ )); do
git --no-pager log -1 --skip=$n --pretty=format:"%C(#d33682)%h %C(#859900)${my_date[$n+1]} %C(#b58900)${my_time[$n+1]} %C(#6c71c4)%ce %C(#2aa198)%s";
printf "\n";
done
}
到目前为止,一切都很好。
然后,我在 bash 终端中使用以下代码将此函数移植为 git 别名:
git config --global alias.l '!f(){
my_date=();
my_time=();
while IFS= read -r line; do
my_date+=( $(date +"%d-%m-%Y" -d @$line) )
my_time+=($(date +"%H:%M" -d @$line))
done < <( git log --format="%at" )
for (( n=0; n<${#my_date[@]}; n++ )); do
git --no-pager log -1 --skip=$n --pretty=format:"%C(#d33682)%h %C(#859900)${my_date[$n+1]} %C(#b58900)${my_time[$n+1]} %C(#6c71c4)%ce %C(#2aa198)%s";
printf "\n";
done
}; f'
现在每次我尝试使用git l
时,它都会说f: 2: Syntax error: "(" unexpected (expecting "}")
。
这里可能是什么问题?