【问题标题】:Bash scripting unexpected operatorBash 脚本意外操作符
【发布时间】:2014-08-19 07:45:27
【问题描述】:

我正在为 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 不起作用。这是什么错误?

谢谢

【问题讨论】:

    标签: bash shell


    【解决方案1】:

    if [ "a" == "a" ] 应该是if [ "a" = "a" ]

    bash 接受 == 而不是 =,但您的 /bin/sh 可能不是 bash。

    所以要么将== 更改为=,或者将你的shebang 更改为#!/bin/bash

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-26
      • 2020-10-09
      • 2023-03-28
      • 1970-01-01
      • 2019-07-31
      • 1970-01-01
      • 2022-10-17
      • 2010-09-30
      相关资源
      最近更新 更多