我已掩盖查找的手册页,并且-quit
似乎部分按照我想要的操作,除非只会在发生错误时导致find
返回非零值。那么find
怎么能被迫返回非零值,或者至少被欺骗成返回非零值的方式,这对维护者是可读的?到目前为止,我有这样的例子:找到:如何强制非零退出状态
$ find . -maxdepth 2 -type f \(-exec echo {} \; -o \(-printf "FAIL\n" -a -quit \) \)
./scooby
./shaggy
./velma
./daphne
./fred
$ echo $?
0
我若为false调用替换回声,我得到所需的早早出局,但没有非零退出代码:
$ find . -maxdepth 2 -type f \(-exec false {} \; -o \(-printf "FAIL\n" -a -quit \) \)
FAIL
$ echo $?
0
日期:
我试图找到返回非零当-exec
返回false,即执行返回非零的命令。目前,find
只是将非零-exec
调用转换为布尔状态,以用作find
表达式的一部分。
$ find . -maxdepth 2 -type f \(-exec chmod a+x {} \; -o \(-printf "FAIL\n" -a -quit \) \)
如果chmod失败,这当前不会返回非零值。我希望能够返回非零,如果chmod失败,并且提前退出,它已经使用-quit
。
你试图实现什么(通过返回一个非零的退出代码)? – devnull
我已经更新了这个问题。 – Craig
那么当'chmod'失败或更多时候退出的目标是什么? – devnull