2010-11-23 3 views
3

Я начинаю новую сессию Баш, используя команду:
exec bash --init-file <(cat /etc/profile ~/.bashrc $ANOTHER_SCRIPT) -i
Я хотел бы также изменить приглашение нового сеанса без необходимости добавить еще один файл инициализации ... Я Подозреваю, что мой лучший выбор - это примерно так:
exec bash --init-file <(cat /etc/profile ~/.bashrc $ANOTHER_SCRIPT; echo "PS1='[TEST] '$PS1") -i
Я думаю, что мои проблемы касаются экранированных символов ... но я совершенно не знаю, как продолжить решение проблемы, добавив мой ярлык в подсказку.Экранирование символов в PS1

Любые мысли высоко ценятся,

Эндрю

+0

Интересно, что exec bash --init-file <(cat/etc/profile ~/.bashrc $ ANOTHER_SCRIPT; echo "PS1 = '[TEST]' $ PS1") отличается от exec bash --init-file <(cat/etc/profile ~/.bashrc $ ANOTHER_SCRIPT; echo 'PS1 = "[TEST]" $ PS1') – ajwood 2010-11-23 17:12:30

+0

Переключение с «quotes'inside'quotes» на «цитаты» внутри «кавычек» ломает его! – ajwood 2010-11-23 17:13:20

ответ

3

Должно работать:

exec bash --init-file <(cat /etc/profile ~/.bashrc $ANOTHER_SCRIPT; echo 'PS1="[TEST] $PS1"') -i 
1

PS1="[TEST] $PS1"

Вы не можете поместить это на той же строке в качестве подмены <(cat ...) процесса, так как он ожидает только файлы, а внутри файла ~/.bashrc

+0

Точка с запятой не позаботится об этом? – ajwood 2010-11-23 17:02:04

Смежные вопросы