>我正在尝试执行这样的管道外壳命令
set -o pipefail && command1 | command2 | command3
来自 PHP 脚本。set -o pipefail
部分是在任何命令失败时立即使管道断开。但是这些命令会导致以下结果:
sh: 1: 设置: 非法选项 -o 管道失败
而它从终端运行良好。也许明确指定应该使用哪个 shell PHP CLI (即 bin/bash
)何时执行shell命令可以解决问题,或者有更好的出路吗?
您始终可以改为运行bash -c 'set -o pipefail && command1 | command2 | command3'
。
你可以通过做找到它
echo `echo $SHELL`;