我正在编写一个非常基本的 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
有类似的事情吗?
解决方案如下:
test "${FOO}" || { echo 'Exit message'; exit 1; }