什么[[-s意味着在linux shell中

时间:2012-10-13 00:27:05

标签: linux shell

我找到了这个命令。我理解源重新加载bash配置文件和Ubuntu所需的Ruby权限的固定权限。但是之前和之前的部分是什么?意思?

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

3 个答案:

答案 0 :(得分:3)

[[...]]部分允许使用运算符测试条件。将其视为if语句。在您的示例中,您使用的是-s运算符,它测试引用的文件不为空。

因此,基本上,如果rvm文件不为空,那么您发布的命令会提供源代码

答案 1 :(得分:3)

让我们分解一下:

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

有关详细信息,请参阅How to use double or single brackets, parentheses, curly braces,但据我所知,-s不需要额外的功能,双括号可以替换为单括号)

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

&&将自动运行右侧的命令,只要左侧的命令执行时没有错误返回码。

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

答案 2 :(得分:1)

[[是bash内置测试函数。如果以下文件的大小大于零,则-s返回true。见man bash (Conditional Constructs)。向下滚动一点[[...]]