Вопрос по linux, bash – Как предварительно заполнить ввод командной строки

6

Я запускаю сценарий bash и после выполнения сценария хотел бы предварительно заполнить командную строку какой-либо командой. Единственное условие - сценарий не должен быть запущен в то время.

Мне нужно ...

запустить скрипт у меня есть предварительно заполненный текст в командной строке ПОСЛЕ того, как скрипт был остановлен

Это вообще возможно? Все, что я пытался - это смоделировать скрипт bash, использ

read -e -i "$comm" -p "[[email protected]$HOSTNAME $PWD]$ " input
command $input

Но я ищу что-то более простое.

Ваш Ответ

1   ответ
9

которая показывает, как она работает:

#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;
}

Скомпилируйте это и запустите, и «дата» будет буферизирован как ввод на stdin, который будет прочитан вашей оболочкой после выхода из программы. Вы можете свернуть это в команду, которая позволит вам вставить что-либо во входной поток и использовать эту команду в вашем скрипте bash.

Похожие вопросы