如何在shell脚本中获取scp命令因连接丢失而失败的返回码
我有一个shell脚本,在这个脚本中,我使用下面的命令拉取远程服务器的*.gz文件,在scp之后,我执行gunzip命令。 问题是,在执行scp时,连接丢失,所以不完整的*.gz文件保存在本地服务器目录中,当我尝试在scp命令下面的下一行进行压缩时,它成功地压缩了文件,当我打开文件时,它包含垃圾值如何在shell脚本中获取scp命令因连接丢失而失败的返回码,shell,error-handling,scripting,connection,scp,Shell,Error Handling,Scripting,Connection,Scp,我有一个shell脚本,在这个脚本中,我使用下面的命令拉取远程服务器的*.gz文件,在scp之后,我执行gunzip命令。 问题是,在执行scp时,连接丢失,所以不完整的*.gz文件保存在本地服务器目录中,当我尝试在scp命令下面的下一行进行压缩时,它成功地压缩了文件,当我打开文件时,它包含垃圾值 scp ${HostUser}@${HostServer}:$4/*$no*.gz gunzip 调试时,我发现以下原因: 1.由于连接丢失,文件传输不完整 2.在手动执行gunzip命令时,它
scp ${HostUser}@${HostServer}:$4/*$no*.gz
gunzip
调试时,我发现以下原因:
1.由于连接丢失,文件传输不完整
2.在手动执行gunzip命令时,它给出了文件结尾未找到错误。因此它在文件中随机创建垃圾值,而我的脚本正在成功运行,这是不正确的。
因此,我的问题是:
请建议“$?”将保留最后一个命令的退出代码,以便您可以将其分配给scp命令后的变量。然后执行if语句检查退出代码是否为0,为了成功完成,请运行gunzip命令
scp ${HostUser}@${HostServer}:$4/*$no*.gz
EXIT_STATUS=$?
if [ $EXIT_STATUS -eq 0 ]; then
gunzip
else
...some error handling
fi
“$?”将保存最后一个命令的退出代码,以便您可以将其分配给scp命令后的变量。然后执行if语句检查退出代码是否为0,为了成功完成,请运行gunzip命令
scp ${HostUser}@${HostServer}:$4/*$no*.gz
EXIT_STATUS=$?
if [ $EXIT_STATUS -eq 0 ]; then
gunzip
else
...some error handling
fi
“$?”将保存最后一个命令的退出代码,以便您可以将其分配给scp命令后的变量。然后执行if语句检查退出代码是否为0,为了成功完成,请运行gunzip命令
scp ${HostUser}@${HostServer}:$4/*$no*.gz
EXIT_STATUS=$?
if [ $EXIT_STATUS -eq 0 ]; then
gunzip
else
...some error handling
fi
“$?”将保存最后一个命令的退出代码,以便您可以将其分配给scp命令后的变量。然后执行if语句检查退出代码是否为0,为了成功完成,请运行gunzip命令
scp ${HostUser}@${HostServer}:$4/*$no*.gz
EXIT_STATUS=$?
if [ $EXIT_STATUS -eq 0 ]; then
gunzip
else
...some error handling
fi
是返回码,因此可以更具体。有时您不想处理特定的错误。例如,当没有要处理的文件时(返回代码1)。连接丢失错误远远超过1。是返回码,因此可以更具体。有时您不想处理特定的错误。例如,当没有要处理的文件时(返回代码1)。连接丢失错误远远超过1。是返回码,因此可以更具体。有时您不想处理特定的错误。例如,当没有要处理的文件时(返回代码1)。连接丢失错误远远超过1。是返回码,因此可以更具体。有时您不想处理特定的错误。例如,当没有要处理的文件时(返回代码1)。连接丢失错误远远超过1。