3

このコマンドを見つけました。ソースがbashプロファイルをリロードし、Ubuntuで必要なRuby権限の固定権限を理解しています。しかし、 && の前の部分はどういう意味ですか?

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

3 に答える 3

5

それを分解しましょう:

[[およびは]]、従来のプログラミング言語により類似した高度な機能を有効にし、の代わりに、||の代わりにのような構造を可能にします。-o&&-a

詳細については、二重または単一の角かっこ、括弧、中かっこを使用する方法を参照してください。ただし、私が知る限り-s、追加の機能は必要なく、二重の角かっこは単一の角かっこに置き換えることができます)

-sファイルが存在し、空でないかどうかをテストします

&&左側のコマンドがエラーリターンコードなしで実行される限り、右側のコマンドが自動的に実行されます。

したがって、このステートメントは、ファイルが存在し、空でないかどうかをテストし、存在する場合は、現在のシェル環境にファイルを供給します。

于 2012-10-13T00:35:15.923 に答える
3

[[ ... ]] 部分では、演算子を使用して条件をテストできます。if 文と考えてください。あなたの例では、参照されたファイルが空でないことをテストする -s 演算子を使用しています。

したがって、本質的に、投稿したコマンドは、空でない場合は rvm ファイルのソースを取得します

于 2012-10-13T00:28:53.137 に答える
1

[[bash 組み込みのテスト関数です。-s次のファイルのサイズが 0 より大きい場合、true を返します。man bash (Conditional Constructs)を参照してください。少し下にスクロールして[[...]]

于 2012-10-13T00:31:55.593 に答える