fuser bash脚本返回意外输出

时间:2014-07-31 14:07:39

标签: bash fuser

#!/bin/bash

fuser /mount/foo
echo $?

if [ $? = 0 ]; then
    echo "There are no processes accessing foo."
else
    echo "foo is in use."

回声$?返回'1'是因为热熔器进程正在访问挂载 - 而不是回显“正在使用挂载”,它回应“没有进程访问挂载”。我不确定除了语法之外可能导致这种相反行为的原因,但也许我正在完全错误地构建它。

1 个答案:

答案 0 :(得分:6)

你的第二个$?评估echo的结果,该结果应为0.删除echo或使用变量

#!/bin/bash

fuser /mount/foo
result=$?
echo $result

if [ $result = 0 ]; then
    echo "There are no processes accessing foo."
else
    echo "foo is in use."