我只是想了解以下陈述的含义以及它们是否正确。
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 将永远不会被执行。我在这儿吗?
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”:
与使用相关||并且&&一般而言: