• ベストアンサー

[シェルスクリプト内で bashコマンド後のコマンドが実行されない]

[シェルスクリプト内で bashコマンド後のコマンドが実行されない] 以下の様にシェルスクリプトを記述するとコマンド2が実行されません。 #! /bin/sh コマンド1 bash コマンド2 bash環境でコマンド2を実行させるにはどうしたら良いのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> bash ここで、bashが対話モードで起動してプロンプトを表示するので、コマンド2を実行しないで終了しているように見えるだけです。 スクリプト実行前、スクリプト中のコマンド1の前、「実行後」(正確には「実行中」ですが)で ps コマンドを実行して、動いているプロセスの確認してください。スクリプトが実行中で、bashが増えているのが確認できると思います。 exit と入力してbashを終了されば続きが実行されます >bash環境でコマンド2を実行させるにはどうしたら良いのでしょうか? #-cオプションを使う bash -c コマンド2 # コマンド2がbashのスクリプトなら-cは不要 bash コマンド2 # 標準入力を使う echo 'コマンド 2' | bash # 標準入力を使う:複数あるならヒアドキュメントを使う bash << EOCOMMAND コマンド2 EOCOMMAND # shでやらなければならない理由がないのなら # bashで動作するスクリプトにしてしまう #!/bin/bash #↑パスは実際のにあわせること

hollycats
質問者

お礼

お礼が送れて申し訳ございません。 様々な用例のご回答誠にありがとうございました。

その他の回答 (1)

  • pakuti
  • ベストアンサー率50% (317/631)
回答No.2

やりかたは既に出ていますが、ひとつ気になった事を ディスティリビューションが何かにもよりますが 最近のものであれば、おそらくは /bin/shは/bin/bashへのシンボリックリンクです。

hollycats
質問者

お礼

お礼が送れて申し訳ございません。 ご回答ありがとうございました。 今回質問させていただいた環境ではまだ確認しておりませんが、 自分のPC環境で調べてみた結果確かにbashへのシンボリックリンクでした。 しかし、上記例のコマンド2は実行されませんでした。。

関連するQ&A