#!/bin/bash
fuser /mount/foo
echo $?
if [ $? = 0 ]; then
echo "There are no processes accessing foo."
else
echo "foo is in use."
回声$?返回'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."