检查远程服务器上是否存在目录

检查远程服务器上是否存在目录

我正在尝试使用 sshpass 命令检查远程服务器上是否存在目录。这是我的代码

if [sshpass -p 'xxxx' ssh [email protected] '[ -d /var/www/html/Dirct1/Backup/11-12-12]']; then
echo '1'
else
echo '2'
fi

我收到错误测试:3:测试:[sshpass:未找到。测试是我的脚本文件名。

答案1

在括号后加一个空格:if [ sshpass ...。同样,结束括号可能需要更多空格。但通常情况下,要测试命令的返回代码,您不需要添加括号,这些括号会被test后台命令替换:if [ 1 -eq 2 ]实际上是(*) if test 1 -eq 2。如果之后测试返回代码也会更简单/更易读:

sshpass -p 'xxxx' ssh [email protected] '[ -d /var/www/html/Dirct1/Backup/11-12-12]'
if [[ $? -eq 0 ]]
then 
    echo '1'
else
    echo '2' 
fi

(*)实际上test被 bash 内置的

相关内容