コマンドの方法を実行します
シェルスクリプトは、通常、次の4つを実行するための方法です
- 一つの方法:
bash ./test.sh
- 第二の方法:
./test.sh
- 三つの方法:
source ./test.sh
- 4つの方法:
. ./test.sh
違いの実装
道bash
のスクリプトを実行するためには、その方法は、次の現在の端末を生成しますスクリプトを実行するために、bashの子プロセスをので、現在の環境が影響されませんの。
[root@lincoding usr]# bash ./test.sh
第二の方法./test.sh
の実行の、生成されますシェルシェルインタプリタスクリプトインタプリタ文の最初の行のスクリプトを実行するために子プロセスをシェルインタプリタのステートメントは、その後、同様の方法bashのであれば、。
[root@lincoding usr]# ./test.sh
ときの実行モード、および上記の方法と若干異なる点3と4の方法。
彼がして行っているため、現在の端末でシェルスクリプトを実行し、子を生成しないので、意志現在の環境は、影響力のあるインチ
[root@lincoding usr]# source ./test.sh
[root@lincoding usr]# . ./test.sh
実装の効果の比較
また、上記のそれは現在の環境に影響を及ぼさないので、シェルスクリプトを実行するために誕生過程を与えることから、道Aと第2のアプローチを指し、そして道第二と第三のアプローチ、現在の端末でシェルスクリプトの実装を、そうでしょう現在の環境が影響力あります。
次のように栗の場合は、ディレクトリを切り替えるtest.shスクリプトを書きます
#!/bin/bash
# 切换到tmp目录
cd /tmp
# 打印当前目
pwd
次に、以下の結果と、test.shを実行するためのスクリプトを使用します。
[root@lincoding /]# bash test.sh
/tmp
[root@lincoding /]# pwd
/
実行権限を与える必要はありません、実行するスクリプトを使用し、見つけることができます。
以下の結果でスクリプトを実行test.sh第二の方法:
[root@lincoding /]# chmod u+x test.sh
[root@lincoding /]# ls -l test.sh
-rwxr--r--. 1 root root 64 Sep 26 18:34 test.sh
[root@lincoding /]# ./test.sh
/tmp
[root@lincoding /]# pwd
/
第二の方法との実施完了までに切り替える方法/tmp
シェルスクリプトのディレクトリは、ターミナルを変更しないディレクトリがあり、またはにされ/
た方法の実施及び第二のアプローチ上のルートディレクトリ現在の環境があるんです影響の。
IとIIのシェルスクリプトが実行される方法ですが、それはシェルスクリプトを実行するためにサブプロセスを生成します理由は、スクリプトの最後に実行し、子プロセスが終了すると、それは環境への影響が現在位置している必要はありません、親プロセスに戻りました。
その後、方法3つの実行結果を見てみましょう。
[root@omp120 /]# source ./test.sh
/tmp
[root@omp120 tmp]# pwd
/tmp
4つの方法の結果:
[root@omp120 /]# . ./test.sh
/tmp
[root@omp120 tmp]# pwd
/tmp
4の3つの方法と手段以上の結果から、にスイッチを実行し、見つけることができる/tmp
シェルスクリプトのディレクトリに切り替えされた現在の端末環境のディレクトリ/tmp
実装の仕方スリーと4つの方法上のディレクトリは、現在あります環境があるインパクトの。
概要
ときに、2つのシェルスクリプトの実施の形態と方法は、親プロセスに戻った、それは環境への影響が現在位置している必要はありません、子プロセスが終了すると、スクリプトの最後の実行時に、シェルスクリプトを実行するために子プロセスを生成します。
現在のプロセスでシェルスクリプトの実行である現在の環境での第四のシェルスクリプトの実行の第二のアプローチと方法は、、の結果は、現在の環境の実行に影響します。