8

bash スクリプトを実行しており、スクリプトの実行後にコマンド ラインにコマンドを事前入力したいと考えています。唯一の条件は、その時点でスクリプトが実行されていないことです。

私が必要なのは...

  1. スクリプトを実行する
  2. スクリプトが停止された後、コマンドラインにテキストを事前入力しました

それは可能ですか?私が試したのは、bashスクリプトをシミュレートすることだけです

read -e -i "$comm" -p "[$USER@$HOSTNAME $PWD]$ " input
command $input

しかし、私はもっと簡単なものを探しています。

4

1 に答える 1

11

TIOCSTI ioctl を使用する必要があります。これがどのように機能するかを示す C プログラムの例を次に示します。

#include <sys/ioctl.h>

main()
{
    char buf[] = "date";
    int i;
    for (i = 0; i < sizeof buf - 1; i++)
      ioctl(0, TIOCSTI, &buf[i]);
    return 0;
}

これをコンパイルして実行すると、「日付」が標準入力の入力としてバッファリングされ、プログラムの終了後にシェルが読み取ります。これをコマンドにまとめて、入力ストリームに何かを詰め込み、そのコマンドを bash スクリプトで使用できます。

于 2012-06-02T21:30:29.473 に答える