Изменение приглашения PS1 в родительской оболочке Bash - PullRequest
3 голосов
/ 03 апреля 2012

Используя скрипт, я должен был изменить подсказку родительской оболочки Bash.Я пробовал следующее:

PS1="Hello World > "

Это изменяет подсказку подоболочки, в которой выполняется скрипт, но какую команду я буду использовать, чтобы изменить подсказку родительской оболочки.Есть идеи?

Ответы [ 3 ]

4 голосов
/ 03 апреля 2012

Во всех случаях родительская оболочка должна взаимодействовать.Дочерний процесс в среде unix не может влиять на родительский процесс без его взаимодействия.

Попробуйте это в скрипте subshell changePrompt.sh:

echo 'PS1="Hello World > "'

И затем вызовите скрипт из родительской оболочкикак это:

eval "$(changePrompt.sh)"

Или другой подход: исходный код сценария вместо его вызова.changePrompt.sh:

PS1="Hello World > "

Назовите это так:

source changePrompt.sh

или просто:

. changePrompt.sh
1 голос
/ 03 апреля 2012

вам нужно отредактировать файл .bash_rc, используя то, что вы хотите ... просто добавьте PS1 = "blah" или что-то еще.

файл .bash_rc должен находиться в вашем домашнем каталоге dir / user /home или что-то еще (это скрыто, так что "ls -la")

когда вы отредактировали его, поставьте его в исходное состояние, и оно должно работать (source .bash_rc) - при условии, что тот же dir

, если этоне работает попробуйте файл .rc .... это для всей системы, хотя для всех оболочек (или, по крайней мере, так должно быть) ..... попробуйте здесь для получения дополнительной информации:

http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html--- здесь

0 голосов
/ 09 октября 2018

Псевдонимы (в вашем ~/.bashrc или ~/.bash_aliases) также являются хорошим способом, если вам нужно просто изменить свое приглашение сейчас и потом ...

alias miniprompt="PS1='\[\e[32;1m\]$>\[\e[0m\]'"
alias fullprompt="PS1='\u\[\e[34;1m\]@\[\e[36;1m\]\H \[\e[34;1m\]\w\[\e[32;1m\] $ \[\e[0m\]'"

enter image description here

...