错误捕获scp退出代码无法正常工作

时间:2011-12-12 23:31:24

标签: linux bash scp

我有

# Transfer today's CMS backup to a remote backup server
scp -P 55 -r $localdumpdirectory/dirdump-cms-`date +%Y%m%d`.tar.gz root@someserver:/$remotedumpdirectory/ >/dev/null 2>&1
status=${$}
if [[ ${status} != 0 ]]
then
    echo "Failed to secure copy directory, with code: ${status}" 
    exit 1
fi;

一切正常,除非SCP成功,我得到:

  

无法保护复制目录,代码为:27348

想法?

3 个答案:

答案 0 :(得分:2)

退出代码为$?,而不是$$$$是进程ID。

status=${$}

应该是

status=$?    # or ${?} if you really insist.

如果是bash,请参阅文档中的"Special Parameters"部分。

答案 1 :(得分:0)

你想要吗

status=$?

这将为您提供最后一个命令的状态。

status=$$

这是给你最后一个PID

http://tldp.org/LDP/abs/html/internalvariables.html#PROCCID

答案 2 :(得分:0)

顺便说一句,你可以缩短你所拥有的:

if scp -P 55 -r $localdumpdirectory/dirdump-cms-`date +%Y%m%d`.tar.gz root@someserver:/$remotedumpdirectory/ >/dev/null 2>&1
then
    echo "Failed to secure copy directory, with code: ${status}" 
    exit 1
fi