微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – bash函数返回状态

我有一个功能

function f() {
  command 1
  command 2
  command 3
  command 4
}

我想函数f()以某种方式告诉我,如果4个命令中的任何一个失败,则会出现错误.

我也不想设置-e.我想要运行四个命令,即使一个命令失败.

我怎么做?对不起新手问题 – 我是新手来编写脚本.

解决方法:

如果我理解你正确的问题,你可以这样做:

f() {
  err=""
  command 1 || err=${err}1
  command 2 || err=${err}2
  command 3 || err=${err}3
  command 4 || err=${err}4
  # do something with $err to report the error
}

当然,不是使用变量,而是可以简单地在||之后放置echo命令如果你需要做的就是打印一条错误信息:

f() {
  command 1 || echo "command 1 Failed" >&2
  command 2 || echo "command 2 Failed" >&2
  command 3 || echo "command 3 Failed" >&2
  command 4 || echo "command 4 Failed" >&2
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐