Jis*_*air 7 shell bash error-handling
我有一个 bash 文件,其中包含合并 pcap 文件的命令。我想知道是否有办法确保 bash 中的一行运行。就像在 windows bat 文件中一样,我们有 %ErrorLevel% ¨ 说一个命令
touch -r dcn_file "${dir_dcn}"/"${TAG1_dcn}".pcap
Run Code Online (Sandbox Code Playgroud)
我如何确保这是运行?
Bru*_*ger 12
Shell 旨在轻松完成此类操作。
if touch -r dcn_file "${dir_dcn}"/"${TAG1_dcn}".pcap
then
echo "Command ran successfully."
else
echo "Command had an error: $?"
fi
Run Code Online (Sandbox Code Playgroud)
您偶尔会发现一些专有命令在成功时不会以 0 状态退出,在失败时不会以非零状态退出,但幸运的是,这些异常几乎消失了。
bash 变量$?保存上次命令运行的退出状态。对于典型程序,该值为0成功,任何其他值为失败。特定的返回码应记录在相关程序的手册页中。
您可以使用以下代码:
touch -r dcn_file "${dir_dcn}"/"${TAG1_dcn}".pcap
[ $? -ne 0 ]; then
echo "Command failed: touch: $?"
return $?
fi
Run Code Online (Sandbox Code Playgroud)
测试返回代码,然后打印错误消息,并使用相同的错误代码退出脚本。
| 归档时间: |
|
| 查看次数: |
1470 次 |
| 最近记录: |