.bashrc
にこの行があり、これが正確に何を意味するのか知りたい
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
$-
は「現在のフラグ」を意味します。echo $-
は「himBH」を返します。これらはすべてデフォルトです。[[ $- != *i* ]] && return
は実際に上記のコメントの内容を実行します。インタラクティブフラグが設定されているかどうかをチェックします。 [[および]]はブール値にするため、「true」または「false」になります。 「false && return」はそれを続行させ、「true && return」はそれを実行させます。デフォルトのフラグについて詳しく説明します。
hは「すべてをハッシュ」するためのものです。これは、PATHを照会することで見つかったコマンドの場所を記憶するようbashに指示します。
私は「対話型」です:入力を入力し、出力を取り戻します。
mは「モニター」用:これはジョブ制御を有効にします
Bは「ブレース展開」です。これにより、ブレース拡張を使用できます
Hは「履歴展開」です。これにより、番号の前に感嘆符を付けることで、履歴からコマンドを再実行できます
ところで。私は持っています ...
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
基本的には同じですが、読みやすいと思います。
基本的には、「シェルフラグに小文字のiが含まれていない場合、ここで関数/スクリプトを停止する」ことを意味します。
[[ ]]
bashの条件式を示します
$-
はシェルフラグを意味します。シェルが対話型の場合は、「i」が含まれます(つまり、スクリプトを実行するのではなく、コマンドを入力できます)
!=
単に「等しくない」という意味です。
*i*
「i」を含むすべてのものに一致するワイルドカードパターンです
return
引数なしは、単に現在の関数またはスクリプトの実行を停止することを意味します。
&&
論理的なおよび演算子です。右側の式(この場合はreturn
)は、左側の式がtrueの場合にのみ評価(実行)されます。そのため、多くのプログラミング言語では、a && b
はif a then b
の短縮形です。これは「短絡評価」と呼ばれ、プログラミング教師を使用すると夢中になります:D
インタラクティブシェルでbashが開いていない場合は、何もしないでください。
機能全体はわかりませんが、TTYでbashを開いている場合に備えて、おそらくその行の下にコマンドとフラグが設定されています。