我正在尝试比较用户的umask
。我在做比较时遇到错误。我正在使用的代码是
val=`su - user -c "umask" | tail -2 | sed -n "/[0-9]/p"`
if [ $val -eq 744 ]
then
echo "477 found."
fi
当我执行此操作时,我会发出如下错误:
sh: ^[H: A test command parameter is not valid.
我在compare命令中尝试使用=
,但它仍无法正常工作。
请提出任何建议。
问候。
val
已初始化为0
。
我以root身份运行它,所以没有登录。
我也试过给报价。
答案 0 :(得分:2)
答案 1 :(得分:1)
您的代码在我的机器上运行良好,我建议的唯一解决方案是使用稍微不同的语法,有时不同的bash版本会抱怨一种语法并接受另一种语法:
val=`su - user -c "umask" | tail -2 | sed -n "/[0-9]/p"`
if [[ $val -eq 477 ]] ; then
echo "477 found."
fi
查看[ cond ]
以了解[[ cond ]]
和{{1}}之间的差异。