私はgit bashとシェル環境についてもっと学びたいと思っています。私は現在のプロファイルでこの2行を見てきました。私はこれらの正確な行のためにgoogledをしたが、私は彼らが何をするか説明する何かを見つけることができなかった。git bashを使い始めると、これらの行は.bash_profileで何を意味していますか?
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc
私はgit bashとシェル環境についてもっと学びたいと思っています。私は現在のプロファイルでこの2行を見てきました。私はこれらの正確な行のためにgoogledをしたが、私は彼らが何をするか説明する何かを見つけることができなかった。git bashを使い始めると、これらの行は.bash_profileで何を意味していますか?
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc
test -f FILE
チェックFILE
が存在し、それがファイルではなくディレクトリである場合。. FILE
は、現在のシェルでFILE
のコマンドを実行します。それは組み込みのsource
の同義語です。&&
次のコマンドを実行しない場合&&
続くコマンドは実行されます。 ~/.profile
が存在するのであれば 、test -f ~/.profile && . ~/.profile
はチェックして、それが存在する場合、それが現在のシェルでそのファイルを実行します。
ありがとう、私はそれが私のために物事をより明確にしたと思う。 –
'-f'は、ディレクトリやブロックデバイスなどではなく、存在するかどうかを実際にテストします。 '-e'は存在するかどうかをテストするだけです –
@EricRenoufありがとう、私は答えを更新します。 – emnoor
test
は、さまざまなことをテストするために使用できます。 -f
スイッチは、ファイルの存在をチェックします。
したがって、test -f ~/.profile
がゼロ(成功を意味します)を返した場合、~/.profile
がソースになります。
test
の詳細は、マニュアルページのman test
を参照してください。
ありがとうronak、私はWindows用のgitのmanコマンドにアクセスできないが、あなたの答えは役に立ちました。&&はファイルを作成させるのですか? –
より使い慣れた方法で書くことができます。
if [[ -f ~/.profile ]];then
. /.profile
else
:
fi
OR
if [[ -f ~/.bashrc ]]
then
. ~/.bashrc
fi
OR
if [[ -f ~/.bashrc ]];then . ~/.bashrc;fi
つまり、ファイルが存在する場合は実行します。 (そうでない場合は何もしないでください)
else
部分は省略できます。 :
は、Pythonでpass
のように動作します。 [[
および]]
のスペースが常に必要です。 bashではインデントが必須ではありません。
あなたは 'man test'を試してみましたか?(2つ目は難しいと思いますが)' man bash'は 'source'を探します - ' .'は 'source'の省略形です。 –
最初のコマンドラインは '[-f〜/ .profile] &&と書くこともできます。 〜/ .profile';最後の引数が ']'になることを除いて 'test'の同義語である '[' 'コマンド(' 'テスト' 'はしません)にもっと精通しているかもしれません。そして、 'source'は' 'と書かれた長年の方法ですが、そうでなければ同等です。 'if [-f〜/ .profile];を使うこともできます。次に。 〜/ .profile;同じ意味の「fi」である。そして、あなたは '['、 '['、...の代わりに[['を使ってコードを書くことができました。 –
私はWindows上で使用しているgit bashにmanコマンドはありません。ありがとう。 –