脚本中 if 判断细节

if [[ $1 == "fedora" ]];then
      echo "redhat"
elif [[ $1 == "redhat" ]];then
       echo "fedora"
else
      echo '/root/foo.sh redhat | fedora'
      exit 1
fi

case $1 in
        redhat)
                echo fedora
                ;;
        fedora)
                echo redhat
                ;;
        *)
                echo '/root/foo.sh redhat | fedora'
                ;;
esac

-eq 是做数值比较, == 是做字符串比较

if [ ] 是 POSIX 兼容版写法
if [[ ]] 是 bash zsh 支持的升级版

[ -L "$file" ] && [ -f "$file" ]
[[ -L $file && -f $file ]]

工作中 if 判断用 [[ ]] 和 == 来做是没问题的,相关细节如上

posted @ 2018-07-17 15:55  季文康  阅读(373)  评论(0编辑  收藏  举报