转发 echo 的失败退出代码

问题描述 投票:0回答:1

我正在编写一个非常基本的 shell 脚本,我想检查是否设置了变量。

通常我会写类似的东西

test "${FOO}" || exit

但我也想写一条消息

test "${FOO}" || echo 'set FOO' || exit

但现在

exit
不再被调用,原因显而易见,
echo
成功了。 是的,我可以在
&&
命令后面写
;
echo

但我想知道是否有

echo
(或
test
)的“增强”版本 - 可能是标准/非常常见 - 基本上可以像
assert
一样工作。 理想情况下我想写

test "${FOO}" --on-false-echo 'set FOO'
echo $? # 1

或者类似的东西

test "${FOO}" || echo 'set FOO' --forward-exit-code
echo $? # 1

有类似的事情吗?

linux bash macos sh posix
1个回答
0
投票

解决方案如下:

test "${FOO}" || { echo 'Exit message'; exit 1; }
© www.soinside.com 2019 - 2024. All rights reserved.