メッセージが表示されたら、「bash -c」を準備したままにしてください。

メッセージが表示されたら、「bash -c」を準備したままにしてください。

bash -c終了するのではなく、シェルプロンプトをどのように維持できますか?

答え1

インタラクティブモードにしたいが、あらかじめいくつかのスクリプトを実行している場合。または、スクリプトを実行して対話モードを維持します。もしそうなら、鍵--init-fileはあなたのためです。

あなたが持っていると仮定hello.sh

#!/bin/bash
echo "Hello"
export PS1=subshell@

する

$ bash --init-file hello.sh
Hello
subshell@

答え2

expect別のアプローチは、すでに複数の言語で実装されているアプローチを使用することです。 RAW TCLでは、次のものを使用できます。

#!/usr/bin/env expect

# run the shell
spawn -noecho bash

# blindly send the input in. another way would be to "expect" on the
# prompt, but that's more complicated
send -- "echo foo\n"
send -- "echo bar\n"

# turn interaction with the program over to the user
interact

欠点にはexpectプロセス遅延が含まれ、利点には、初期コマンドリスト機能がサポートされているかどうかに関係なく、すべてのプログラムに適用されるという利点があります。

関連情報