[[ -s 在 linux shell 中是什么意思

4 linux shell

我找到了这个命令。我了解源重新加载了 bash 配置文件并修复了 Ubuntu 上所需的 Ruby 权限。但是&&前面的部分是什么意思呢?

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 
Run Code Online (Sandbox Code Playgroud)

Dav*_*ghn 6

让我们来分解一下:

[[启用]]与传统编程语言更相似的高级功能,允许使用像||代替-o&&代替这样的结构-a

有关这方面的更多信息,请参阅如何使用双括号或单括号、圆括号、花括号,但据我所知-s不需要额外的功能,并且双括号可以用单括号替换)

测试-s文件是否存在且非空

&&只要左边的命令执行没有错误返回码,就会自动运行右边的命令。

因此,该语句测试文件是否存在且非空,如果存在,则将其源到当前 shell 环境中。