该脚本将退出并显示测试结果,从调用者的角度来看,这是不希望的。应该如何实施呢?
#!/bin/bash
test -n "" && echo "test passed"
答案1
只需添加一个显式的:
exit 0
如果您不想报告任何失败,请在脚本末尾添加。
您还可以这样做:
#! /bin/sh -
ret=0
cmd || ret=$? # we care about the failure of cmd
test -n "" && echo test # we don't care about the failure of test or echo
exit "$ret"
对于您的特定示例,您可以重写它:
test -z "" || echo test passed
(如果失败,仍然会报告错误echo
,但您可能想要报告该错误,因为这表明出现了问题)
或者:
test -n "" && echo test passed || : ignore
该:
命令总是返回一个成功退出状态。