首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >test - linux命令

test - linux命令
EN

Stack Overflow用户
提问于 2015-11-22 08:47:25
回答 1查看 1.1K关注 0票数 0

我只是想知道test Linux命令。

是否有来自test -f FILE的输出可以使用变量获取?

我如何知道这个test是否成功执行?

EN

回答 1

Stack Overflow用户

发布于 2015-11-23 15:50:46

test命令设置其退出代码。您可以检查$?中的值,但通常不必这样做。相反,您可以使用一个控制流构造,例如whileif,它在幕后为您执行此操作。

代码语言:javascript
运行
复制
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的语法负担(回想起来,这可能是一个稍微不愉快的设计决定-至今仍让初学者感到震惊)。

您还会看到许多初学者还没有学过这个成语,并编写了像这样的椒盐脆饼代码。

代码语言:javascript
运行
复制
test -e "$myfile"
while [ $? -eq 0 ]; do
    ....

Yo,我听说您喜欢运行test,所以我运行testtest第一个test的输出。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33853060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档