有两个shell脚本:A.sh和B.sh
另一个脚本C.sh将创建一个包含以下内容的日志:
Example:
<My hostname>
<My username>
A.sh
12:09:00 p.m "Initialize shell" OK
12:10:00 p.m. "Creating file" OK
12:11:00 p.m. "Creating backup" FAIL
B.sh
01:00:00 p.m "Initialize shell" OK
01:01:00 p.m. "Creating file" FAIL
01:02:00 p.m. "Creating backup" FAIL
重点是获取每个函数的成功/失败状态以及执行的时间并将其全部保存到日志文件中。如何检查shell中每个函数的状态?
答案 0 :(得分:1)
1最简单的方法是从独立文件中的脚本中刷新输出,然后将此日志文件包含到由C.sh生成的公共文件中。
您可以在A.sh,B.sh中使用tee
* nix函数来填充日志文件并仅过滤您需要的记录。
此外,可以通过set +o errexit
和set +o pipefail
在脚本中获取错误,然后在函数后面检查函数执行的状态:
set +o errexit
func.sh param1 param2
if [ $? -ne 0 ] ; then
echo "FAIL" | tee 1.txt
exit 1 # if you need interrupt execution
else
echo "OK" | tee 1.txt
fi