该语句的含义 - test -x /usr/bin/find || 出口0

Daw*_*ith 4 shell test

我只是想了解以下陈述的含义以及它们是否正确。

test -x /usr/bin/find || exit 0 
Command 1
Command 2
Command 3
Run Code Online (Sandbox Code Playgroud)

的输出test -x /usr/bin/find始终为 0。这意味着将执行 exit 0 命令,这意味着命令 1、2、3 将永远不会被执行。我在这儿吗?

Kus*_*nda 7

test -x /usr/bin/find(或[ -x /usr/bin/find ]) 不输出任何内容。如果是现有的可执行文件,则测试将为true ;如果路径名不存在或不可执行,则测试将为false 。/usr/bin/find

如果test成功退出(退出状态为零,表示“无错误”),shell 将执行其余命令。如果它退出失败(非零退出状态,表示“某些错误”),exit 0将终止当前 shell,阻止其余命令运行。

可以说,当无法找到时,使用exit 1或代替exit它会更好。使用掩码的退出状态(这将是非零),并防止该脚本的调用者收到在给定位置查找失败的通知。exit 0find/usr/binexit 0testfind

与以下事实相关:当在 shell 中测试为布尔值时,退出状态为零的计算结果为“true”:

与使用相关||并且&&一般而言: