アプリ版:「スタンプのみでお礼する」機能のリリースについて

[シェルスクリプト内で bashコマンド後のコマンドが実行されない]
以下の様にシェルスクリプトを記述するとコマンド2が実行されません。

#! /bin/sh
コマンド1
bash
コマンド2

bash環境でコマンド2を実行させるにはどうしたら良いのでしょうか?

A 回答 (2件)

> 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
#↑パスは実際のにあわせること
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/04/08 21:44

やりかたは既に出ていますが、ひとつ気になった事を



ディスティリビューションが何かにもよりますが
最近のものであれば、おそらくは
/bin/shは/bin/bashへのシンボリックリンクです。
    • good
    • 0
この回答へのお礼

お礼が送れて申し訳ございません。
ご回答ありがとうございました。

今回質問させていただいた環境ではまだ確認しておりませんが、
自分のPC環境で調べてみた結果確かにbashへのシンボリックリンクでした。

しかし、上記例のコマンド2は実行されませんでした。。

お礼日時:2010/04/08 21:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!