如何获取通过ssh而不是ssh命令本身运行的命令的返回码?

时间:2013-06-06 03:58:12

标签: bash shell

我正在尝试编写一个bash脚本,其中一个第一步是检查远程主机中是否存在文件,以及它是否可执行。这听起来像test命令的作业,但我必须在其前面添加ssh。像这样:

$(ssh user@box 'test -x /path/thefile >/dev/null 2>&1; $?')

除了以上似乎并不能回复我,远程文件是否存在且是否可执行...我该怎么做?

1 个答案:

答案 0 :(得分:2)

使用$()语法时,您将获得命令的输出,而不是结果代码。你可以这样做:

if ssh user@box 'test -x /path/thefile'; then
  echo "It exists"
fi