【发布时间】:2018-03-28 00:32:56
【问题描述】:
我使用的是 AIX 6.1。下面的代码对我来说工作正常。
if [ "$HOSTNAME" = "host1" ]; then
echo "This is host1"
elif [ "$HOSTNAME" = "host2" ]; then
echo "This is host2"
else
echo "This is another host"
fi
但是当我在我的代码中使用 Shebang 时,即使第一个/第二个 if 条件为真,也总是会执行最后一个 else 部分。
#!/bin/sh
if [ "$HOSTNAME" = "host1" ]; then
echo "This is host1"
elif [ "$HOSTNAME" = "host2" ]; then
echo "This is host2"
else
echo "This is another host"
fi
如何获得与第一个代码 sn-p 相同的输出,但使用 shebang。
附: : 由于某些限制,我无法在不使用 shebang 的情况下编写脚本。
【问题讨论】:
-
你的登录shell是哪个shell?它与 /bin/sh 相同吗? $> 环境 | grep SHELL 如果您正在运行 bash 变体,会告诉您您的 shell
-
环境 | grep SHELL 给出 SHELL=/usr/bin/ksh 我不好,if 条件里面有一个空格。编辑了问题
-
使用ksh时,本页提示需要[[ ]] cyberciti.biz/faq/ksh-if-command-examples/amp
-
试过了,但仍然坚持下去。当我不使用 shebang line 时,不明白它是如何工作的。
-
但是[]前后的空格不是重复的问题