一个 bash 脚本执行多个命令。 在每个命令之后,如何:
- 如果成功:在控制台中显示自定义消息并将其附加到日志文件
- 如果出错:在控制台显示错误信息,将错误信息附加到日志文件并恢复整个脚本
这是我的位置:
log_file="log.txt"
output() {
echo $@
echo $@ 2>&1 >> $log_file;
if [ $@ -eq 0 ]
then
exit 1
fi
}
然后在每个命令之后:
if [ $? -eq 0 ]
then
output "Custom message"
else
output $?
fi
这使得很多重复......
最佳答案
您可以创建一个“运行”函数来限制重复:
run()
{
message="$1"
shift
eval "$*"
if [ $? -eq 0 ]; then
output "$message"
else
output $?
fi
}
只需在每个命令前添加:
run "message" "command"
只有包含 shell 元表达式的命令才需要被引用。
关于linux - 在每个命令之后,如果成功 : show a custom message, 如果错误 : show error, 并发送到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40622699/