私が呼び出す小さなスクリプトがありますprompt-to-run
。
prompt_acc=''
read -p 'run `'"$1"'`
' -i "$1" -e prompt_acc
$prompt_acc
これにより、コマンドを入力するスクリプトを生成できますが、スクリプト全体を停止せずに実行を編集またはスキップする機会も提供されます。
私は別のスクリプトを持っています。 「実行したい」と呼びますlong-running-script
。自分の端末で実行したいです。なぜなら、いくつかの入力を受けた後にそこに座ってより多くのテキストを連続的に出力するからです。prompt-to-run
複数の呼び出しを含むスクリプトの先頭から実行した後、元の端末に戻って次の呼び出しを実行できるようにしたいですprompt-to-run
。
long-running-script
内部に新しい端末を開いたので、手動で入力してください。
long-running-script &
実行したいプログラムを実行し、元の端末のプロンプトに戻ります。ただし、prompt-to-run 'long-running-script &'
端末プロンプトは返されません。これは、コマンドが環境変数内で実行されるため、$prompt_acc
私が望むように解釈されないためです。
prompt-to-run
どちらか一方または両方を変更したり、long-running-script
必要なものを取得する方法はありますか?
ベストアンサー1
あなたは正しいです。その理由は、環境変数内で実行されるからです。したがって、後続の完全なテキスト(含む&
)はに引数として渡されますlong-running-script
。
回避策は、ファイルの$prompt_acc &
代わりにファイル$prompt_acc
に呼び出しを入れることです。これにより、prompt-to-run
スクリプトを実行しないことを決定しても&
邪魔になりません。