我是 bash 脚本和学习“if then”语句的新手。当我运行下面的简单脚本时,它会执行并给出正确的结果,但是我仍然收到错误消息。脚本的名称是 testscript.sh。错误如下:“./testscript: line 5: [csh: command not found]”
有人能说出这是什么意思吗?
#! /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
Run Code Online (Sandbox Code Playgroud)
Ste*_*ris 10
让我们逐行浏览一下:
#! /bin/bash
MY_SHELL="csh"
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。
If ["$MY_SHELL" = "bash"
Run Code Online (Sandbox Code Playgroud)
现在这一行有许多错误:
if
不If
-外壳的情况下如此灵敏foo
和FOO
不同[
字符后应该有一个空格]
在测试结束时使用前面的空格。这意味着该行应该更像 if [ "$MY_SHELL" = "bash" ]
then
echo "You seem to like the bash shell."
else
Run Code Online (Sandbox Code Playgroud)
这些很好
Then "You don't seem to like the bash shell."
Run Code Online (Sandbox Code Playgroud)
你想要echo
这里。记住区分大小写。
fi
Run Code Online (Sandbox Code Playgroud)
结果:
#! /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
Run Code Online (Sandbox Code Playgroud)
编辑:一旦您对 shell 脚本更加熟悉,https://www.shellcheck.net/是一个用于验证内容的有用站点。错误输出并不总是很清楚,但它通常有助于指出错误!