【发布时间】:2014-10-17 06:47:37
【问题描述】:
我有这样的功能
function backup {
do_backup
printf "success"
do_more_backup
echo "success"
if ... ; then
echo 1
else
echo 0
fi
}
我有一个这样的条件语句
if [[ ! $(backup) ]]; then
...
我无法将函数的输出输入到 shell 中,但它正在评估所有命令 - 我已经在调试模式下进行了检查。我想评估这个函数,所以它达到了她的目的,同时打印出一些日志消息,然后检查这个函数的退出代码是否一切成功。如何在 bash 中解决这个问题?以及如何避免打印出最后一个回显,它是一个状态,或者一个函数的退出代码,用于条件语句中的评估。
【问题讨论】:
-
[[...]]在这里完全是多余的。正确且惯用的语法(一旦将echo更改为return)就是if ! backup; then... -
我对 bash 没有太多经验,因此我犯了这个错误。谢谢三胞胎指导我。