使用在远程主机上执行的脚本返回的值

时间:2014-08-05 18:04:54

标签: bash shell ssh

所以我在正在访问远程主机并执行另一个脚本的本地主机上执行此代码:

count=$(ssh -i /home/ubuntu/***** "sh /home/ubuntu/michael/LogScript/backUpLog.sh "$1" "$2" "$3"")
echo "$count"
exit "$count"

这是它远程连接并运行的代码:

count=$(grep "^$(date -d -"$1"minute +'%Y-%m-%d %H')" /var/log/*****/*****.log | wc -l)
if [ "$count" -ge "$2" -a "$count" -lt "$3" ]
then
    exit 1
fi  
if [ "$count" -ge "$3" ]
then 
    exit 2
fi
exit 0

ssh工作正常,因为我使用非常简单的脚本进行测试,但是当我运行上述内容时,我得到exit: 3: Illegal number:它没有比这更多的内容。是因为我在本地脚本中调用count的方式吗?

1 个答案:

答案 0 :(得分:1)

您的远程脚本返回退出代码但没有输出。您的本地脚本会忽略退出代码并尝试捕获输出。

您可以更改本地脚本以改为使用退出代码:

ssh -i /home/ubuntu/***** "sh /home/ubuntu/michael/LogScript/backUpLog.sh $1 $2 $3"
exitCode=$?

echo "Command exited with $exitCode"
exit "$exitCode"