fuser bash脚本返回意外输出
回声$?正在返回“1”,因为fuser进程正在访问挂载-而不是回显“挂载正在使用”,它回显“没有进程访问挂载”。除了语法之外,我不确定是什么导致了这种相反的行为,但可能是我完全错误地构建了它。您的第二个$?计算echo的结果,该结果应为0。删除echo或改用变量fuser bash脚本返回意外输出,bash,fuser,Bash,Fuser,回声$?正在返回“1”,因为fuser进程正在访问挂载-而不是回显“挂载正在使用”,它回显“没有进程访问挂载”。除了语法之外,我不确定是什么导致了这种相反的行为,但可能是我完全错误地构建了它。您的第二个$?计算echo的结果,该结果应为0。删除echo或改用变量 #!/bin/bash fuser /mount/foo echo $? if [ $? = 0 ]; then echo "There are no processes accessing foo." else e
#!/bin/bash
fuser /mount/foo
echo $?
if [ $? = 0 ]; then
echo "There are no processes accessing foo."
else
echo "foo is in use."
你的第二美元?计算echo的结果,该结果应为0。删除echo或改用变量
#!/bin/bash
fuser /mount/foo
echo $?
if [ $? = 0 ]; then
echo "There are no processes accessing foo."
else
echo "foo is in use."
由于除了调试之外,您不太可能需要
echo$result
,因此您可以更简单地将其编写为if fuser/mount/foo;然后
chepner-您的示例将导致它总是回显“没有进程访问foo”。需要回显$result,因为fuser/mount/foo不提供我需要的控件,除非发生回显。1报告装载正在使用,0报告未使用。目前,它总是报告它正在使用中,因为第一个echo报告由于fuser进程而使用的挂载。第二个回音将提供真实的答案,这就是此脚本不完整的原因。这只是其中的一部分。现在我需要添加循环和其他参数。感谢您的反馈。由于除了调试之外,您不太可能需要echo$result
,因此您可以更简单地将其编写为if fuser/mount/foo;然后
chepner-您的示例将导致它总是回显“没有进程访问foo”。需要回显$result,因为fuser/mount/foo不提供我需要的控件,除非发生回显。1报告装载正在使用,0报告未使用。目前,它总是报告它正在使用中,因为第一个echo报告由于fuser进程而使用的挂载。第二个回音将提供真实的答案,这就是此脚本不完整的原因。这只是其中的一部分。现在我需要添加循环和其他参数。谢谢你的反馈。