gpt4 book ai didi

shell - 如何在shell中获取测试命令返回码?

转载 作者:行者123 更新时间:2023-12-04 15:32:15 32 4
gpt4 key购买 nike

在一行中从命令中获取返回代码是否有更好的方法。例如:

$ test $(ls -l) ||echo 'ok'
-bash: test: too many arguments
ok

上面的脚本在测试命令中有错误,因为它似乎解析输出“ls - l”而不是返回代码。

我知道使用“if”语法可以正常工作,但需要多于一行。
ls -l
if [ $? -eq 0 ];then
echo 'ok'
fi

最佳答案

您可以使用 &&||使这些东西成为一体。例如,在以下内容中:

ls -l && echo ok
echo ok只有在 && 之前的命令才会运行( ls -l ) 返回 0 .

另一方面,在以下方面:
ls -l || echo 'not ok'
echo 'not ok'只有在 || 之前的命令才会运行返回非零。

此外,您可以制作您的 if..else使用 ; 块单衬:
if ls -l;then echo ok;else echo 'not ok';fi

但这可能会使您的代码难以阅读,因此不推荐。

关于shell - 如何在shell中获取测试命令返回码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37003113/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com