所以我想根據主機設置不同的路徑,但不幸的是它不工作。這裏是我的腳本:
if [$HOSTNAME == "foo"]; then
echo "success"
else
echo "failure"
fi
這是發生了什麼:
-bash: [foo: command not found
failure
我肯定知道$ HOSTNAME是foo,所以我不知道是什麼問題。雖然我對bash很新穎。任何幫助,將不勝感激!謝謝!
所以我想根據主機設置不同的路徑,但不幸的是它不工作。這裏是我的腳本:
if [$HOSTNAME == "foo"]; then
echo "success"
else
echo "failure"
fi
這是發生了什麼:
-bash: [foo: command not found
failure
我肯定知道$ HOSTNAME是foo,所以我不知道是什麼問題。雖然我對bash很新穎。任何幫助,將不勝感激!謝謝!
的POSIX和便攜的方式在外殼比較字符串是
if [ "$HOSTNAME" = foo ]; then
printf '%s\n' "on the right host"
else
printf '%s\n' "uh-oh, not on foo"
fi
case語句可能會更加靈活,雖然:
case $HOSTNAME in
(foo) echo "Woohoo, we're on foo!";;
(bar) echo "Oops, bar? Are you kidding?";;
(*) echo "How did I get in the middle of nowhere?";;
esac
提示:shell是空白敏感的。 '[x'與[x'不同。 – Jens
提示:字符串相等的測試運算符是'=',而不是'==',即使後者被錯誤的外殼接受,也會導致程序員的錯誤消息減少。 – Jens