我正在编写一个脚本来通过 sftp 传输一些文件。我想通过使用 sshfs 挂载目录来将传输作为本地传输进行,因为它使创建所需的目录结构变得更加容易。我遇到的问题是我不确定如何处理没有网络连接的情况。基本上我需要一种方法来判断 sshfs 命令是否失败。如果无法挂载远程目录,如何使脚本保释的任何想法?
最佳答案
只需测试 sshfs
是否返回 0(成功):
sshfs user@host:dir mountpoint || exit 1
上述工作是因为在 bash 中逻辑或
||
执行 short-circuit evaluation 。允许您打印错误消息的更好的解决方案如下:if !( sshfs user@host:dir mountpoint ); then
echo "Mounting failed!"
exit 1
fi
编辑:
确实。再详细说明一下:大多数应用程序成功时返回 0,失败时返回另一个值。 shell 知道这一点,因此将返回值 0 解释为 true,将任何其他值解释为 false。因此,逻辑或和否定测试(使用感叹号)。
关于bash 检查用户挂载是否失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/880330/