【发布时间】:2016-05-03 11:39:09
【问题描述】:
有没有更好的方法在一行中从命令中获取返回码。例如:
$ test $(ls -l) ||echo 'ok'
-bash: test: too many arguments
ok
上面的脚本在测试命令中有错误,因为它似乎解析输出“ls - l”而不是返回代码。
我知道使用“if”语法可以正常工作,但需要多于一行。
ls -l
if [ $? -eq 0 ];then
echo 'ok'
fi
【问题讨论】:
-
很不清楚你在问什么。请注意edit 并说明您面临的确切问题是什么?
-
您误解了
test命令。无需使用它来简单地检查返回码。第二段代码的单行代码是ls -l && echo 'ok'。