シェルから他のシェルスクリプトを呼び出す方法

シェルから他のシェルスクリプトを呼び出す方法

シェルから他のシェルスクリプトを呼び出す方法はいくつかあります。
基本的な方法として、以下の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 コマンド

別のシェルプロセスでスクリプトを実行し、独立した環境を提供する。

それぞれの方法には特性があり、目的に応じて適切な方法を選択することが重要です。