シェルから他のシェルスクリプトを呼び出す方法
シェルから他のシェルスクリプトを呼び出す方法はいくつかあります。
基本的な方法として、以下の3つが挙げられます。
1. シンプルな呼び出し
シェルスクリプト内で、他のシェルスクリプトをそのまま呼び出すことができます。
例えば、script2.shをscript1.shから実行する場合、以下のように書きます。
#!/bin/bash # script1.shの内容 echo "This is script1" # script2.shを呼び出し ./script2.sh
この方法では、script2.shが実行され、その結果がscript1.shに返されます。
script2.shが実行された後、script1.shの次の行が実行されます。
2. source コマンドを使用
source コマンドを使用すると、他のシェルスクリプトを現在のシェルセッション内で実行できます。
これにより、呼び出されたスクリプト内の変数や関数が現在のシェルに引き継がれます。
#!/bin/bash # script1.shの内容 echo "This is script1" # script2.shを呼び出し source ./script2.sh
この場合、script2.sh内で定義された変数や関数は、script1.shでも使用できます。
例えば、script2.shで変数VARを設定すると、script1.shでもその変数VARにアクセスできます。
3. bash コマンドを使用
bashコマンドを使って、他のシェルスクリプトを新しいシェルプロセスで実行することもできます。
これにより、スクリプトを独立したプロセスで実行できます。
#!/bin/bash # script1.shの内容 echo "This is script1" # script2.shを別プロセスで実行 bash ./script2.sh
この方法では、script2.shは新しいシェルプロセスで実行されるため、script2.sh内の変数や関数はscript1.shに引き継がれません。
script2.shが終了すると、script1.shに制御が戻ります。
まとめ
- シンプルな呼び出し
呼び出したスクリプトが終了すると次の行が実行される。
- source コマンド
呼び出したスクリプトの変数や関数をそのまま使用できる。
- bash コマンド
別のシェルプロセスでスクリプトを実行し、独立した環境を提供する。
それぞれの方法には特性があり、目的に応じて適切な方法を選択することが重要です。