【发布时间】:2017-01-05 21:54:19
【问题描述】:
我有一个小的 bash 脚本:
#!/bin/bash
if [[ "$@" == "pull" ]]
then
# stuff
elif [[ "$@" == "push" ]]
then
# stuff
else
echo "Command not recognised"
fi
它位于 /usr/bin/local 中,我使它可执行。但是,每当我运行它时,我都会得到script:1: == not found
有什么想法吗?
如果重要的话,这是 macOS。
【问题讨论】:
-
# stuff中有什么内容?你能复制并粘贴你的脚本是什么吗? -
@melpomene:无关紧要,这是
[[。 -
即使在 bash 的
[[ ]]中,顺便说一下,使用=比使用==更好仍然 - 这样你就不会养成习惯这将导致您为其他 shell 或测试命令编写错误代码。 -
不过,这个问题最大的问题是 您没有测试其中包含的代码来重现您所询问的相同问题 -- 如果您'已经测试过了,你会注意到不相关的语法错误(由于测试条件中缺少正文内容),并修复了由此重现的语法错误。
-
@AdamJarvis,不正确:复合命令(如
if)在执行任何部分之前都会被完整解析。
标签: bash if-statement string-comparison