Как использовать source в скрипте bash, чтобы изменить приглашение терминала?

мне нужно иметь возможность использовать скрипт в ~/.local / bin /(который является частью $PATH), чтобы быстро изменить приглашение.

желаемый результат можно получить, запустив в консоли:

 echo PS1='$ ' > /tmp/ps1 && source /tmp/ps1 && rm /tmp/ps1

тем не менее, когда он помещается в скрипт, он больше не влияет на консоль, в которой он работает.

. .local/bin/bigfont работает, но следует избегать записи пути к скрипту (или написания чего-либо, кроме имени скрипта).

есть ли способ сделать это с помощью сценарий? Если нет, то есть простой способ решить эту проблему с помощью C?

спасибо!

5
задан qubodup
источник

2 ответов

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

написать функцию Bash:

function miniprompt {
  PS1='$ '
  ~/.local/bin/somescript # or just somescript if it's in $PATH
}

чтобы убедиться, что функция всегда доступна, поместите ее в ~/.bashrc и ~/.bash_profile (или просто ~/.bashrc если он загружается ~/.bash_profile во всяком случае).

гарйон ясно дал понять, что вопрос содержит неправильное предположение, что source необходимо использовать и уточнить, что вместо этого можно установить PS1='$ ' напрямую. Спасибо!

0
отвечен qubodup 2015-11-07 17:30:31
источник
function myprompt {
  export PS1=<set PS1 appropriately>
}

alias setprompt="PROMPT_COMMAND='myprompt'"

запуск setprompt должен установить приглашение.

0
отвечен Vinayak Gadkari 2018-10-18 13:42:22
источник

Другие вопросы bash linux linux-terminal prompt