Linux运维笔记
我们一直在努力

Bash Shell if字符比较判断

[ “$PanDuan” = “i” ]

如何解决if在做字符判断的时候出现 [: =: unary operator expected 的报错

“`c
panduan=$1

StartAnsibleYumMod() {
if [ “$ScriptParameterCount” = “3” ] || [ “$panduan”x = “i”x ];
then
case $StateInput in
install|remove|update)
case $StateInput in
install) Cstate=install;;
remove) Cstate=remove;;
update) Cstate=update;;
esac
ansible $Hosts -m yum -a “state=$Cstate name=$NameInput”
;;
*)
echo “UseYumToolMetheod”;;
esac
else
echo “UseYumToolMetheod”
fi
}
“`

只能使用单个等号,并且方括号和当中的判断需要有一个空格
表达式 $PanDuan”x = “i”x 后面都有一个x,如何$PanDun为空的时候,上面的表达式就变成了x = ix,显然是不相等的。
而如果没有这个x,表达式就会报错:[: =: unary operator expected

赞(0) 打赏

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址