我是 bash 脚本和学习“if then”语句的新手。当我运行下面的简单脚本时,它会执行并给出正确的结果,但我仍然收到错误。脚本的名称是testscript.sh。错误如下:“./testscript:第5行:[csh:命令未找到]”
有人能告诉这是什么意思吗?
#! /bin/bash
MY_SHELL="csh"
If ["$MY_SHELL" = "bash"
then
echo "You seem to like the bash shell."
else
Then "You don't seem to like the bash shell."
fi
答案1
让我们逐行浏览一下:
#! /bin/bash
MY_SHELL="csh"
到目前为止,一切都很好。
If ["$MY_SHELL" = "bash"
现在这一行有很多错误:
if
而不是If
- shell 区分大小写,因此foo
和FOO
是不同的[
字符后面应该有一个空格- 您需要
]
在测试末尾加一个空格。
这意味着这条线应该更像if [ "$MY_SHELL" = "bash" ]
then
echo "You seem to like the bash shell."
else
这些都很好
Then "You don't seem to like the bash shell."
你想要一个echo
这里。请记住区分大小写。
fi
结果:
#! /bin/bash
MY_SHELL="csh"
if [ "$MY_SHELL" = "bash" ]
then
echo "You seem to like the bash shell."
else
echo "You don't seem to like the bash shell."
fi
编辑:一旦你对 shell 脚本更加熟悉,https://www.shellcheck.net/是一个用于验证内容的有用网站。错误输出并不总是清晰的,但它通常有助于指出错误!
答案2
因为括号实际上是命令,所以[
前后需要一个空格!]
所以:
if [ "$shell" = "bash" ];
还有其他错误我没有指出,因为这是您要求的错误。