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

Желаемого результата можно достичь, запустив в консоли следующее:

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

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

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

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

Спасибо!

2 ответа2

0

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

Напишите функцию Bash:

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

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

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

0
function myprompt {
  export PS1=<set PS1 appropriately>
}

alias setprompt="PROMPT_COMMAND='myprompt'"

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .