Я пытаюсь создать простой скрипт, который, помимо прочего, создаст подоболочку:
#!/bin/sh
# setup
"${@:-$SHELL}"
# teardown
Вопрос в том, что мне нужно изменить приглашение по умолчанию, например:
$ # оболочка по умолчанию
$
./myscript (myscript) $ #
subshell (myscript) $ exit
$
Я пытался изменить PROMPT
и PS1
, но ни одна из этих работ. Как я могу это сделать?
PS: мне нужно решение, которое работает как на Bash, так и на ZSH, если это возможно.
bash
только для .Ответы:
Я думаю, что вы можете создать подоболочку с другой подсказкой, подобной этой:
пример
Текущий env:
В субоболочке:
Вернуться к оригинальной оболочке:
источник
here string
вместо процесса замены. например<<< "PS1..."
.Причина, по которой не работа может быть потому , что при загрузке оболочки (который должен быть , например .:
/bin/bash
), он будет в конечном итоге перезагрузки конфигурационных файлов, которые включают в себя переменные окружения для подсказки (например .:$HOME/.bashrc
) после того прошло переменные окружения, которые вы хотите - таким образом, ваши переменные отбрасываются.Возможно, вы захотите проверить параметры оболочки для загрузки пользовательских файлов конфигурации (например,
--rcfile
в Bash IINM) и использовать их, а также\env
для передачи переменных среды, которые вы хотите. Проблема в том, что когда вы выполняете этот запуск, подоболочка становится зависимой от оболочки.( CAVEAT EMPTOR : я пока не считаю это ответом - в частности, я еще не пробовал ничего из этого в моей системе.)
источник