Как использовать source в скрипте bash, чтобы изменить приглашение терминала?
мне нужно иметь возможность использовать скрипт в ~/.local / bin /(который является частью $PATH), чтобы быстро изменить приглашение.
желаемый результат можно получить, запустив в консоли:
echo PS1='$ ' > /tmp/ps1 && source /tmp/ps1 && rm /tmp/ps1
тем не менее, когда он помещается в скрипт, он больше не влияет на консоль, в которой он работает.
. .local/bin/bigfont
работает, но следует избегать записи пути к скрипту (или написания чего-либо, кроме имени скрипта).
есть ли способ сделать это с помощью сценарий? Если нет, то есть простой способ решить эту проблему с помощью C?
спасибо!
2 ответов
есть компромисс, из-за которого будет казаться, что вы используете скрипт.
написать функцию Bash:
function miniprompt {
PS1='$ '
~/.local/bin/somescript # or just somescript if it's in $PATH
}
чтобы убедиться, что функция всегда доступна, поместите ее в ~/.bashrc
и ~/.bash_profile
(или просто ~/.bashrc
если он загружается ~/.bash_profile
во всяком случае).
гарйон ясно дал понять, что вопрос содержит неправильное предположение, что source
необходимо использовать и уточнить, что вместо этого можно установить PS1='$ '
напрямую. Спасибо!
function myprompt {
export PS1=<set PS1 appropriately>
}
alias setprompt="PROMPT_COMMAND='myprompt'"
запуск setprompt должен установить приглашение.
Другие вопросы bash linux linux-terminal prompt