首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较umask

如何比较umask
EN

Stack Overflow用户
提问于 2012-09-11 07:31:26
回答 2查看 237关注 0票数 0

我正在尝试比较用户的umask。我在做比较时出错了。我使用的代码是

代码语言:javascript
复制
val=`su - user -c "umask" | tail -2 | sed -n "/[0-9]/p"`
if [ $val -eq 744 ]
then

   echo "477 found."

fi

当我执行此操作时,我会得到一个错误,例如:

代码语言:javascript
复制
sh: ^[H: A test command parameter is not valid.

我在compare命令中尝试过使用=,但它仍然无法工作。

请给出任何建议。

致以问候。

val已初始化为0

我把它作为root运行,所以没有登录。

我也试过引用。

EN

回答 2

Stack Overflow用户

发布于 2012-09-11 07:35:47

您应该在测试表达式中引用变量名:

代码语言:javascript
复制
if [ "$val" -eq 744 ]

有关原因,请参见这里

票数 2
EN

Stack Overflow用户

发布于 2012-09-11 09:10:27

您的代码在我的机器上执行得很好,我建议的唯一解决方案是使用稍微不同的语法,有时不同的bash版本抱怨一种语法,而接受另一种:

代码语言:javascript
复制
val=`su - user -c "umask" | tail -2 | sed -n "/[0-9]/p"`
if [[ $val -eq 477 ]] ; then
   echo "477 found."
fi

看看这里,看看[ cond ][[ cond ]]之间的区别。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12364827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档