|| 有什么作用 : 是指在 shell 脚本的上下文中吗?

tar*_*yte 8 bash

|| :在 shell 脚本的上下文中是什么意思?

我刚刚遇到了这条线:

eval "/usr/bin/mybinary aparameter" || :
Run Code Online (Sandbox Code Playgroud)

Gia*_*968 11

||是一个“或”比较运算符。

:是一个空操作这确实什么都没有。嗯,它确实返回一个成功的退出状态……如果你需要那个?

所以在你的情况下:

eval "/usr/bin/mybinary aparameter" || :
Run Code Online (Sandbox Code Playgroud)

伪示例要么evals 为真,要么做……什么都没有……但返回一个成功的退出状态。这看起来很傻,但它都是伪代码来向您展示一般结构,所以它在某种程度上似乎确实有意义。

  • `:` 命令有一个有用的副作用:它总是返回一个成功的退出状态。如果 eval 以错误退出,`|| :` 将强制零退出状态。 (3认同)
  • 这似乎是`|| 的另一种用法。true` 成语,只是不太可读。 (3认同)
  • 一个用例是,如果用户想使用 `set -e` 创建一个脚本以在出现任何错误时立即退出,但不关心这个特定的命令。 (3认同)