【发布时间】:2011-09-30 09:59:01
【问题描述】:
这周我一直很忙,试图围绕一个小 Bash 程序将 CMS 从一台服务器迁移到另一台服务器。这样做的原因是因为我有超过 40 件事情要做,并且需要及时完成,这就是 Bash 的想法。
不用说,到目前为止,我遇到了几个问题,但其中一个完全停止了我的开发,即目录检查。
不,我尝试了几种方法,但似乎都没有真正奏效。问题是我必须通过 ssh 检查远程服务器上的文件夹。这是我的例子:
ExSshRsa=~/.ssh/id_rsa
ExSshPort=22
ExSshHost=localhost
ExRoot=/var/www/
echo -n "Verifying Root access $ExRoot..."
SSHRoot='ssh -i $ExSshRsa -p $ExSshPort $ExSshHost [ -d $ExRoot ] || exit 1 '
echo $SSHRoot
if [ "$SSHRoot" -eq 0 ]
then
echo "OK"
else
echo "FAIL"
fi
我得到错误:[: : integer expression expected
[ 或测试是否不会返回数字 0。 ?
【问题讨论】:
-
你意识到你没有运行那个 ssh 调用,只是显示它,对吧?
-
我将行改为 SSHRoot=$( ssh -i $ExSshRsa -p $ExSshPort $ExSshHost [ -d $ExRoot ] && echo "0" && exit 0 || echo "1" && exit 1 ) 它似乎工作...?!?
-
我多么想更改标题中的错字...
-
哦,没发现 :-) 您应该可以在您的问题下方使用 edit 链接。它是否阻止您进行该编辑? (如果是,错误是什么?)