有人可以解释一下 more 命令吗?
当我将它与||
或 with 一起使用时&&
,即使找不到文件,它的存在状态似乎也为 true(与其他命令不同)。
~/Desktop$ more notExists || echo aaa
notExists: No such file or directory
~/Desktop$ more notExists && echo aaa
notExists: No such file or directory
aaa
答案1
OSX 和 Linux 上的返回值more
不同。运行此命令以查看您的 Unix 版本的返回值:
more file_that_doesnt_exist; echo $?
在 OSX 上,我经历过1
失败和0
成功。
在 Ubuntu 和 RedHat Linux 上,我经历过0
失败和0
成功。这似乎是一个错误。
另一种选择是使用less
.它似乎在 Ubuntu Linux 中返回正确的退出代码。
另一种选择是使用:
{ cat file_that_doesnt_exist || echo nonexistent; } | more
该cat
命令似乎在 Linux 中返回预期的退出代码。