更多命令行为

更多命令行为

有人可以解释一下 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 中返回预期的退出代码。

相关内容