我可以将 bashrc 设置为 echo $ 吗?在特定命令之后?

我可以将 bashrc 设置为 echo $ 吗?在特定命令之后?

我熟悉在 .bashrc 中设置简单的别名,并认为它可能能够执行我想要的操作,但不太确定如何执行此操作。愿望:总是回响$?特定程序执行完毕后。我想在打印出相当尴尬的 STDERR 消息后运行它的特定程序,乍一看就像一个错误,即使成功了。我总是回显$?作为我真正阅读这些内容之前的第一次检查,但至少有四分之一的时间会输入错误并失去回显机会。我想做的是设置一个别名,这样当我输入时

$ foo --option [argument]

它实际上确实如此

$ foo --option [argument]

working blah blah blah

$ echo $?

这可能吗?

答案1

使用函数:

foo () {
    command foo "$@"
    echo "$?"
}

这将仅foo使用提供的任何参数执行命令,然后回显退出状态。

您可能还想拥有foo 功能返回与相同的退出状态foo 命令和:

foo() {
  local ret
  command foo "$@"
  ret="$?"
  echo "$ret"
  return "$ret"
}

相关内容