Linux ソース コマンドとスクリプトの実行方法の分析
/etc/profile ファイルを変更したときに、再度ログインすることなくすぐに有効にしたいと考え、次のようなソース コマンドを使用することを考えました。 /profile
ソースを調べて、sh 実行スクリプトと比較してまとめます。
source コマンド:
source コマンドは「ドット コマンド」とも呼ばれ、ドット記号 (.) であり、bash の内部コマンドです。
機能: 指定されたシェル プログラム ファイルにシェルを読み込ませ、ファイル内のすべてのステートメントを順番に実行します。 通常、
source コマンドは、変更したばかりの初期化ファイルを再実行するために使用され、変更を加えなくてもすぐに有効になります。ログアウトして再度ログインします。
使用法:
source filename または . filename
source コマンド (C シェルからの) は bash シェルの組み込みコマンドであり、ドット コマンド (.) は (Bourne シェルからの) ドット記号です。もう一つの名前の由来。
source ファイル名と sh ファイル名および ./filename 実行スクリプトの違いは何ですか?
1. シェル スクリプトに実行権限がある場合、スクリプトの実行に sh filename を使用する場合と ./filename を使用する場合に違いはありません。 ./filename は、現在のディレクトリが PATH に存在せず、すべての "." が現在のディレクトリを表すために使用されるためです。
2.sh ファイル名 サブシェルを再作成し、サブシェル内のスクリプト内のステートメントを実行します。サブシェルは親シェルの環境変数を継承しますが、サブシェルの新規および変更された変数は親シェルに戻されません。エクスポートを使用しない限り。
3.source filename: このコマンドは実際には、新しいサブシェルを作成せずに、スクリプト内のステートメントを単に読み取り、現在のシェルで順番に実行します。これにより、スクリプト内で変数を作成および変更するすべてのステートメントが現在のシェルに保存されます。
例:
1. 次の内容で新しい test.sh スクリプトを作成します: A=1
2. 次に、それを実行可能にします chmod +x test.sh
3. sh test.sh を実行した後、$ A を実行します。 A=1 が現在のシェルに戻されないため、空として表示されます
4. ./test.sh を実行すると、同じ効果が得られます
5. ソース test.sh または .test.sh を実行します。 echo $A, 1 が表示され、変数 A=1 が現在のシェルにあることを示します
以上がこの記事の全内容です、皆さんの学習に役立つことを願っています。 PHP 中国語 Web サイトをサポートします。
Linux でのsource コマンドの使用に関する詳細な説明については、PHP 中国語 Web サイトに注目してください。