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

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

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

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

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

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

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

спасибо!

29
задан qubodup
18.12.2022 22:04 Количество просмотров материала 3455
Распечатать страницу

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 2022-12-20 05:52
function myprompt {
  export PS1=<set PS1 appropriately>
}

alias setprompt="PROMPT_COMMAND='myprompt'"

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

0
отвечен Vinayak Gadkari 2022-12-20 08:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх