我在写一个脚本来一些文件在传输SFTP。我想通过sshfs的安装目录,因为它使创建所需的目录结构很容易做转移作为一个地方转移。我遇到的问题是我不能确定如何处理没有网络连接的情况。基本上,我需要一种方法来告诉SSHFS与否命令失败。任何想法如何导致脚本保释如果远程目录不能安装?

有帮助吗?

解决方案

只是测试sshfs是否返回0(成功):

sshfs user@host:dir mountpoint || exit 1

在上述工程因为在bash逻辑 - 或||执行短路评价。一个更好的解决方案,它允许打印的错误信息是:

if !( sshfs user@host:dir mountpoint ); then
  echo "Mounting failed!"
  exit 1
fi

修改

  

我要指出,你这是怎么检查几乎任何不乖应用在大多数平台上的成功。 - SPARR 1分钟前

事实上。更详细地说明一点:大多数应用程序成功返回0,失败的另一个值。 shell知道这一点,因此解释的0作为真正的返回值和任何其他值设置为false。因此,逻辑或和负测试(使用感叹号)。

其他提示

我试图检查是否一个目录不是为一个sshfs装入挂载点。从上面使用例子失败:

if !( mountpoint -q /my/dir ); then
    echo "/my/dir is not a mountpoint"
else
    echo "/my/dir is a mountpoint"
fi

在错误:-bash: !( mountpoint -q /my/dir ): No such file or directory

我修改我的代码具有以下和过成功:

if (! mountpoint -q /my/dir ); then
    echo "/my/dir is not a mountpoint"
else
    echo "/my/dir is a mountpoint"
fi
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top