このコマンドを見つけました。ソースがbashプロファイルをリロードし、Ubuntuで必要なRuby権限の固定権限を理解しています。しかし、 && の前の部分はどういう意味ですか?
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
それを分解しましょう:
[[
およびは]]
、従来のプログラミング言語により類似した高度な機能を有効にし、の代わりに、||
の代わりにのような構造を可能にします。-o
&&
-a
詳細については、二重または単一の角かっこ、括弧、中かっこを使用する方法を参照してください。ただし、私が知る限り-s
、追加の機能は必要なく、二重の角かっこは単一の角かっこに置き換えることができます)
-s
ファイルが存在し、空でないかどうかをテストします
&&
左側のコマンドがエラーリターンコードなしで実行される限り、右側のコマンドが自動的に実行されます。
したがって、このステートメントは、ファイルが存在し、空でないかどうかをテストし、存在する場合は、現在のシェル環境にファイルを供給します。
[[ ... ]] 部分では、演算子を使用して条件をテストできます。if 文と考えてください。あなたの例では、参照されたファイルが空でないことをテストする -s 演算子を使用しています。
したがって、本質的に、投稿したコマンドは、空でない場合は rvm ファイルのソースを取得します
[[
bash 組み込みのテスト関数です。-s
次のファイルのサイズが 0 より大きい場合、true を返します。man bash (Conditional Constructs)を参照してください。少し下にスクロールして[[...]]