Есть ли способ сделать оболочку интерактивной в середине скрипта? - PullRequest
4 голосов
/ 29 января 2010

Я бы хотел сделать что-то вроде:

do lots of stuff to prepare a good environement
become_interactive
#wait for Ctrl-D
automatically clean up

Возможно ли это с помощью bash? Если нет, видите ли вы другой способ сделать то же самое?

Ответы [ 2 ]

8 голосов
/ 29 января 2010

Структура это так:

test.sh

#!/bin/sh
exec bash --rcfile environ.sh

environment.sh

cleanup() {
    echo "Cleaning up"
}
trap cleanup EXIT
echo "Initializing"
PS1='>> '

В действии:

~$ ./test.sh 
Initializing
>> exit
Cleaning up
2 голосов
/ 29 января 2010

Вы можете вызвать другую оболочку в середине скрипта, но она меняется, например, на переменные окружения не будут отражены за ее пределами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...