【发布时间】:2018-06-25 15:02:36
【问题描述】:
我使用/bin/bash 作为最外层的外壳,并且我使用来自busybox 的默认/bin/sh。
在下面,我可以按预期捕获退出代码:
$ docker run -it --rm busybox /bin/sh -c "bin/sh -c \"cat /foo/bar\" && echo Shell Result: $?" || echo Docker Result: $?
cat: can't open '/foo/bar': No such file or directory
Docker Result: 1
显然cat /foo/bar 失败了,这是我们在|| 另一边输入语句的方式。但是,当我尝试回显结果时,$? 的值是0(如下所示):
$ docker run -it --rm busybox /bin/sh -c "bin/sh -c \"cat /foo/bar\" || echo Shell Result: $?" || echo Docker Result: $?
cat: can't open '/foo/bar': No such file or directory
Shell Result: 0
结果存储在哪里,或者我如何捕获它?
【问题讨论】:
标签: bash shell docker sh busybox