我正在为 git hook 编写脚本,但在 while
中使用 if
语句时遇到问题。
文件:
#!/bin/sh
while read oldrev newref ref
do
branch=$(git rev-parse --symbolic --abbrev-ref $ref)
if [ "a" == "a" ]
then
echo "Condition work"
fi
echo "$branch"
done
错误:
hooks/post-receive: 6: [: a: unexpected operator
我会尝试使用变量、双引号,但 if
不起作用。这是什么错误?
谢谢
最佳答案
if [ "a"== "a"]
应该是 if [ "a"= "a"]
。
bash
接受 ==
而不是 =
,但是你的 /bin/sh
可能不是 bash .
所以要么将 ==
更改为 =
,要么将您的 shebang 更改为 #!/bin/bash
关于Bash 脚本意外运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24464690/