簡単なプログラムを実行しようとしています。
#!/bin/bash
bash
echo "Hello World"
ただし、プログラムはライン2でのみ「bash」コマンドを実行します。プログラムが3行目で実行されないのはなぜですか? bashを入力するとプログラムが終了します。
bash-3.2$
プログラムが「Hello World」を印刷できるように、別の行を追加する必要がありますか?私はすでにbashシェルにあることを知っていますが、まだこのエラーを理解していません。
答え1
端末のコマンドプロンプトでこのコマンドを実行するとします。サムバッシュの例:
- 端末で実行される対話型bash。
- スクリプトを実行するためのbashインスタンス。
- スクリプトの2行目で呼び出されるbashインスタンス。
スクリプトbash
は引数なしで呼び出されるため、標準入力からコマンドを読み取ります。入力は端末から出てくるので、プロンプトなどを印刷するインタラクティブシェルが得られます。
インスタンス#3を終了した後、スクリプト(インスタンス#2)は次の行に印刷し続けますHello World
。その後、スクリプトが終了し、元のコマンドプロンプト(インスタンス#1)に戻ります。