別のbashシェルにあるbashシェルのスクリプト

別のbashシェルにあるbashシェルのスクリプト

簡単なプログラムを実行しようとしています。

#!/bin/bash
bash
echo "Hello World"

ただし、プログラムはライン2でのみ「bash」コマンドを実行します。プログラムが3行目で実行されないのはなぜですか? bashを入力するとプログラムが終了します。

bash-3.2$

プログラムが「Hello World」を印刷できるように、別の行を追加する必要がありますか?私はすでにbashシェルにあることを知っていますが、まだこのエラーを理解していません。

ベストアンサー1

端末のコマンドプロンプトでこのコマンドを実行するとします。サムバッシュの例:

  1. 端末で実行される対話型bash。
  2. スクリプトを実行するためのbashインスタンス。
  3. スクリプトの2行目で呼び出されるbashインスタンス。

スクリプトbashは引数なしで呼び出されるため、標準入力からコマンドを読み取ります。入力は端末から出てくるので、プロンプトなどを印刷するインタラクティブシェルが得られます。

インスタンス#3を終了した後、スクリプト(インスタンス#2)は次の行に印刷し続けますHello World。その後、スクリプトが終了し、元のコマンドプロンプト(インスタンス#1)に戻ります。

おすすめ記事