【问题标题】:Bash how to execute all commands but return exit value of previous commandBash如何执行所有命令但返回前一个命令的退出值
【发布时间】:2020-03-02 07:56:41
【问题描述】:

我想测试一个 c++ 库是否安装成功,所以我有一个命令链:

$ echo '#include "library_to_check_for"' > test.cpp && g++ test.cpp ??? rm test.cpp ???

每次都需要执行删除命令但我需要$?从编译命令返回状态(即编译是否成功并且找到了库)

从逻辑上讲,我认为有一种方法可以对其中的某些内容进行 AND/OR 操作以使其正常工作。我只是无法理解它

可能是这个..?

$ echo '#include "library_to_check_for"' > test.cpp; g++ test.cpp; rm test.cpp; exit (something?)

【问题讨论】:

  • 查看 trap BASH 内置函数。也可以在子 shell 中运行整个内容,这样您就可以使用 set -e 使其更加清晰。

标签: bash command-line pipe return-value logical-operators


【解决方案1】:

也许您可以像这样将返回值存储在变量中?

echo '#include "library_to_check_for"' > test.cpp; g++ test.cpp; LASTRETURN=$?; rm test.cpp;
echo $LASTRETURN

【讨论】:

    猜你喜欢
    • 2020-03-27
    • 2020-06-11
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    相关资源
    最近更新 更多