问题描述
我想在我的Git别名之前添加一个确认,例如:
amend = !echo -n 'Confirm: ' && read 'x' && [ $x == 'y' ] && git add -A && git commit -a --amend
这直接在终端中有效,但是当我将其作为Git别名运行时,我得到:
echo -n 'Confirm: ' && read 'x' && [ $x == 'y' ] && git add -A && git commit -a --amend: 1: [: y: unexpected operator
我该如何进行这项工作?
解决方法
我怀疑git别名默认使用sh
。尝试将测试命令中的==
替换为=
:
amend = !echo -n 'Confirm: ' && read 'x' && [ $x = 'y' ] && git add -A && git commit -a --amend
==
由bash
定义,但不是由POSIX定义。
http://www.gnu.org/software/bash/manual/html_node/Bash-Conditional-Expressions.html