答案1
该脚本中的某处有一行类似
export VAR=$SOMETHING
并且变量的值SOMETHING
包含一个空格,后跟--wait
,例如$SOMETHING
可以是foo --wait
或foo --wait=42
。因此, bash 内置函数export
接收两个参数VAR=foo
(完全有效的赋值)和--wait
,这不是有效的变量名。
解决方法是使用双引号。始终在变量替换周围使用双引号。其中任何一个都可以:
export VAR="$SOMETHING"
export "VAR=$SOMETHING"
要查找受影响的行,请运行bash -x ./git-sh
代替./git-sh
,或set -x; . git-sh; set +x
代替. git-sh
。 shell 将打印它所执行的行的踪迹;在跟踪中查找错误。