2015-11-07 501 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