bashスクリプトのifステートメントで-fはどういう意味ですか?

このコードを理解しようとしています:

if [ -f /etc/bashrc ]; then . /etc/bashrc fi 

わかりません-fの正確な意味。

回答

これを確認するための関連するマニュアルページは、シェル自体のマニュアルページです。bash-fはシェルが提供する機能であるため、 “sabashが組み込まれています。

私のシステムでは(CentOS 7)、すばらしいマニュアルページがそれをカバーしています。 grepは、他のディストリビューションでは同じ結果にならない場合があります。それでも、man bashを実行してから「-f」を検索すると、必要な結果が得られます。

$ man bash | grep -A1 "\-f file$" -f file True if file exists and is a regular file. $ 

回答

つまり、コードは/etc/bashrcファイルが存在する場合はそれをソースし、存在は、-fが演算子/パラメータである[コマンドによって確認されます。

ステートメントは、コマンドの終了ステータスを評価します-0成功した場合。したがって、次のようなことを行うのが適切です。

if ping -c 4 google.com; then echo "We have a connection!" fi 

この場合、コマンドは[です。これはtestコマンドとも呼ばれます。したがって、実行するのは完全に有効です

if test -f /etc/bashrc; then . /etc/bashrc fi 

-fフラグは2つのことを確認します。指定されたパスが存在し、通常のファイルです。 /etc/bashrcが実際にディレクトリであるか欠落している場合、テストは失敗を通知するためにゼロ以外の終了ステータスを返す必要があります

このコマンドは元々別のコマンドでしたが、そうではありませんシェルの組み込みコマンドの一部。現在、ほとんどのボーンのようなシェルには組み込みコマンドがあり、それがシェルが使用するものです。

ちなみに、/etc/bashrcは、管理者またはコードスニペットの元の作成者が使用している不要な追加ファイルのようです。 /etc/bash.bashrcが存在します。これはbashのシステム全体のrcファイルとして意図されているため、使用されることが期待されます。

参照:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です