如何停止bash评估字符串

时间:2013-04-04 15:59:44

标签: bash shell

我在脚本中有以下块来验证挂载点是否为tmpfs

if [ "$(stat -f -c '%T' $LOGDIR)" -ne 'tmpfs' ]
then
    echo "Log directory ($LOGDIR) must be tmpfs"
    exit 1
fi

问题在于,如果文件系统作为ext2 / ext3返回,那么shell会尝试对其进行评估并以零除的方式进行转换。如何强制将其视为常规字符串?

2 个答案:

答案 0 :(得分:2)

不要使用-ne算术运算符,请使用字符串运算符!=

是的,你在运行什么版本的bash?我得到了integer expression expected

答案 1 :(得分:2)

使用!=进行字符串比较; -ne仅用于整数比较。 (实际上,我很惊讶它尝试使用“ext2 / ext3”进行算术,而不是简单地将整个字符串视为零值。)