Bash 脚本意外运算符

标签 bash shell

我正在为 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/

相关文章:

linux - 在命令行中 sftp 两个文件

windows - 如何使用 ANT 从 Windows XP 系统执行 UNIX 命令

shell - 环境变量不会在 shell 脚本中设置

java - PyLucene 的 Make 和 Make install 出现问题

bash - 删除每第 n 行的最后一个字符

bash - 如何在 sed 中使用反引号命令结果?

linux - 如何使用 df 命令查找可用和已用内存总量

linux - zsh 中修改当前完成选项的 compopt 等效项是什么?

c - 如何从 C 文件更改终端中的目录

linux - 使用shell脚本从两个列表中提取数据