如何通过ssh检查dir是否存在并将结果返回给主机

hax*_*ode 23 ssh bash shell

我正在尝试建立SSH连接并查看是否存在目录,如果该目录存在,我想在进行SSH调用的本地计算机上运行命令.

这是我尝试过的:

if [ ssh -t username@ssh_server -d /directory ]
then
{
    commands....
}
fi
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?

ani*_*ane 45

你非常接近:

将if语句更改为

if ssh username@ssh_server '[ -d /directory ]'
Run Code Online (Sandbox Code Playgroud)

我假设你已经设置了基于密钥的身份验证.

  • 顺便说一下,"[ - d $ directory]"周围的双引号允许变量插值 (16认同)
  • ^^这是真的,但我更喜欢单引号加双引号,只要有可能,出于类似的原因 - 避免不必要的扩展.:-) (4认同)
  • 这里的括号不是必需的**,但增加了可读性. (3认同)
  • 我忘记在 ```if``` 行末尾的条件后面加上 ```then``` ,bash 给了我错误。提及使用“then”会很有帮助。 (2认同)