シェル: シェル スクリプトから別のシェル スクリプトを呼び出すにはどうすればよいでしょうか? 質問する

シェル: シェル スクリプトから別のシェル スクリプトを呼び出すにはどうすればよいでしょうか? 質問する

シェル スクリプトが 2 つありa.shますb.sh

b.shシェル スクリプト内から呼び出すにはどうすればよいでしょうかa.sh?

ベストアンサー1

これを行うには、いくつかの方法があります。

  1. 他のスクリプトを実行可能にするにはchmod a+x /path/to/fileネイサン・リリエンタールのコメント#!/bin/bashの先頭に行 (shebang と呼ばれる)を追加し、ファイルがあるパスを$PATH環境変数に追加します。その後、通常のコマンドとして呼び出すことができます。

  2. sourceまたは、次のように、コマンド( のエイリアス.)を使用して呼び出します。

    source /path/to/script
    
  3. または、bash次のようにコマンドを使用して実行します。

    /bin/bash /path/to/script
    

1 番目と 3 番目のアプローチでは、スクリプトを別のプロセスとして実行するため、他のスクリプト内の変数と関数にはアクセスできません。2
番目のアプローチでは、最初のスクリプトのプロセスでスクリプトを実行し、他のスクリプトから変数と関数を取得します (そのため、呼び出し元のスクリプトから使用できます)。もちろん、変数を設定するだけでなく、他のスクリプト内のすべてのコマンドを実行します。

2 番目の方法では、exit2 番目のスクリプトで を使用している場合、最初のスクリプトも終了します。これは、1 番目と 3 番目の方法では発生しません。

おすすめ記事