我只是想知道test
Linux命令。
是否有来自test -f FILE
的输出可以使用变量获取?
我如何知道这个test
是否成功执行?
发布于 2015-11-23 15:50:46
test
命令设置其退出代码。您可以检查$?
中的值,但通常不必这样做。相反,您可以使用一个控制流构造,例如while
或if
,它在幕后为您执行此操作。
while test -e "$myfile"; do
if grep -q 'fnord' "$myfile"; then
echo "Success! Play again."
dd if=/dev/urandom count=1 | base64 >"$myfile"
else
break
fi
done
观察while
如何检查test
的退出代码,if
如何检查grep
的退出代码。这些程序中的每一个--通常是任何有用的Unix实用程序--都是这样编写的,以便在成功时返回一个零退出代码,否则返回一个非零值。
test
可能有点奇怪,因为这就是它所做的一切。从历史上看,它有点像厨房的水槽,以避免用大量的字符串和文件属性测试来加重shell的语法负担(回想起来,这可能是一个稍微不愉快的设计决定-至今仍让初学者感到震惊)。
您还会看到许多初学者还没有学过这个成语,并编写了像这样的椒盐脆饼代码。
test -e "$myfile"
while [ $? -eq 0 ]; do
....
Yo,我听说您喜欢运行test
,所以我运行test
来test
第一个test
的输出。
https://stackoverflow.com/questions/33853060
复制相似问题