我正在使用AIX 6.1。下面的代碼對我來說工作得很好。如果Else在UNIX中不工作#!/ bin/sh shebang在UNIX中
if [ "$HOSTNAME" = "host1" ]; then
echo "This is host1"
elif [ "$HOSTNAME" = "host2" ]; then
echo "This is host2"
else
echo "This is another host"
fi
但是,當我在我的代碼使用家當,始終是越來越執行的最後一個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
我怎樣才能得到相同的輸出作爲第一個代碼段,但使用家當。
P.S. :由於某些限制,我不能在不使用shebang的情況下編寫腳本。
哪個shell是您的登錄shell?它和/ bin/sh是一樣的嗎? $> env | grep SHELL 如果你正在運行bash變體,會告訴你你的shell – Spangen
env | grep SHELL給SHELL =/usr/bin/ksh 而且我的壞,如果條件裏面有空格。編輯問題 – Rohit
當使用ksh時,此頁面建議您需要[[]] https://www.cyberciti.biz/faq/ksh-if-command-examples/amp/ – Spangen