【问题标题】:How set an exit code when exiting bash?退出bash时如何设置退出代码?
【发布时间】:2019-09-20 14:34:01
【问题描述】:

我想从一个子 bash 运行一个命令,我需要它的返回码;实际上它正在运行一个管道,我需要 PIPESTATUS 数组,或者至少一个组件。

这是我最好的猜测,但它不起作用。我只得到一个 0。由于 bash 没有出错,它是有道理的,这不是我需要的。帮忙?

bash -c "echo 123 | grep abc | sort; exit ${PIPESTATUS[1]}"; echo $?
0

【问题讨论】:

    标签: bash pipestatus


    【解决方案1】:

    尝试使用单引号:

    bash -c 'echo 123 | grep abc | sort; exit ${PIPESTATUS[1]}'; echo $?
    

    样本运行:

    bash -c 'echo 123 | grep abc | sort; exit ${PIPESTATUS[1]}'; echo $?
    1
    
    bash -c 'echo 123 | grep abc | sort; echo status is ${PIPESTATUS[@]}'; echo $?
    status is 0 1 0
    0
    

    这上面有一个相关的post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 2018-09-05
      • 2016-08-16
      相关资源
      最近更新 更多