我找到了这个命令。我了解源重新加载了 bash 配置文件并修复了 Ubuntu 所需的 Ruby 权限。但是 && 之前的部分是什么意思?
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
让我们分解一下:
[[
和]]
启用了更类似于传统编程语言的高级功能,允许使用像代替||
和-o
代替&&
的结构-a
。
有关这方面的更多信息,请参阅如何使用双括号或单括号、括号、花括号,但据我所知-s
不需要额外的功能,双括号可以用单括号替换)
测试文件是否-s
存在且非空
&&
只要左边的命令执行没有错误返回码,就会自动运行右边的命令。
因此,该语句测试文件是否存在且非空,如果是,它将源它到当前的 shell 环境中。
[[ ... ]] 部分允许使用运算符测试条件。把它想象成一个 if 语句。在您的示例中,您使用的是 -s 运算符,它测试引用的文件是否为空。
因此,本质上,如果 rvm 文件不为空,您发布的命令将获取该文件的来源
[[
是bash内置的测试功能。-s
如果以下文件的大小大于零,则返回 true。请参阅man bash(条件构造)。向下滚动一点到[[...]]