我正在尝试整合我的dotfiles,所以我只有一套用于我的本地OSX机器和Linux服务器。我有这个条件语句,但$(brew --prefix)
正在linux机器上运行,即使该块不应该运行...
SYSTEM=`uname -a | cut -d" " -f1`
# These things are system specific
if [ $SYSTEM=="Darwin" ]; then
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
for file in ~/.completion/* ; do
if [ -f "$file" ] ; then
. "$file"
fi
done
elif [ $SYSTEM=="Linux" ]; then
alias upgrade='sudo apt-get update && sudo apt-get upgrade'
# save the IP address in case I need it later
export IP_ADDRESS=`ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'`
fi
如果我回应linux机器上的$SYSTEM
变量,它表示它是Linux
,但bashrc的源代码在brew --prefix
命令上失败。
无论如何评估该变量?我有办法改变它吗?
答案 0 :(得分:3)
==
:
if [ $SYSTEM == "Darwin" ]
否则bash的行为就像你写的那样:
if [ "some-non-empty-string" ]
总是true
,而不是:
if [ "" ]
总是false
。