我正在尝试使用 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 内置的