Я делаю сценарий, который должен открыть новый экземпляр bash, ввести несколько команд и затем разрешить мне продолжать использовать этот экземпляр bash. Как я могу это сделать? На данный момент у меня есть это:

bash << EOF
    do_something()
EOF

Как мне сделать, чтобы новый экземпляр bash вызывал do_something(), а затем позволял мне вводить другие команды?

Позже отредактируйте:

На самом деле я использую внутреннюю команду другой компании, которую я не могу контролировать, которая делает что-то за кадром, а затем дает мне предварительно сконфигурированный bash. Вот почему я привел этот пример отправки команд. Потому что это можно настроить для любого переводчика.

1 ответ1

2

Используйте подоболочку и отправьте ее в трубу. «скрипт» тоже может помочь:

user@name:~$ (printf '%s\n' 'echo 1' 'echo 2'; cat) | bash
1
2
echo 3
3
user@name:~$ # DON'T do this: (printf '%s\n' 'echo 1' 'echo 2'; cat) | bash -i
user@name:~$ (printf '%s\n' 'echo 1' 'echo 2'; cat) | script -c 'bash -i' /dev/null
++++Skript gestartet, die Datei ist /dev/null
++++user@name:~$ 1
++++user@name:~$ 2
++++user@name:~$ echo 3
++++3
++++user@name:~$ Skript wurde beendet, die Datei ist /dev/null
user@name:~$ 

Замечание: знаки плюс не появляются вообще, я добавил их, чтобы прояснить часть «сценария».

Вместо script -c 'bash -i' /dev/null вы можете использовать script /dev/null , как команда script вызывает bash -i по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .