2015-11-07 496 views
0

想法是检查远程文件夹。它存在还是不存在? 我试试这个SSH hot检查远程目录是否存在

SSH -p 22 -tt [email protected]“的bash -d /家庭/ test22

,它工作正常

/家/ test22:/home/test22:是一个目录 连接到server.com关闭。

但是,当我尝试使用“IF”使用它 - 这是错误的......总是说“那目录存在”

#!/bin/bash 

if [ "ssh -p 22 -tt [email protected] 'bash -d /home/test22'" ]; then 
    echo "That directory exists" 
else 
    echo "That directory doesn't exists" 
fi 

你能显示正确的例子吗?

谢谢!

+1

该回复看起来像一条错误消息,不像“结果”。这样的错误被写入'stdout',错误输出。我没有看到你想如何在条件中使用它。你可能想看看'file'命令。与往常一样,该命令有一个“man page”。 – arkascha

+0

我只想检查远程目录并运行依赖条件。 –

+3

可能的重复[如何检查目录是否存在于SSH并返回结果给主机](http://stackoverflow.com/questions/15927911/how-to-check-if-dir-exist-over-ssh-and -return-results-to-host-machine) – jayant

回答

3

使用的命令不是bashtest或其别名[

if ssh -p 22 -tt [email protected] 'test -d /home/test22'; then 
    echo "That directory exists" 
else 
    echo "That directory doesn't exists" 
fi 

另一个重要的事情是,[]不是if语法的一部分。 if总是后跟一个命令,并且if将评估其退出状态。所以不需要用[]围绕你的ssh命令。

-d dir实际上是命令test[的参数。

test -d dir 
[ -d dir ] 

是相同的,后一种形式需要结束]参数。

+0

它的工作原理 - 谢谢! –

+0

也许接受答案? – SzG