2017-01-30 1 views

답변

7

PS1은 환경 변수가 아니기 때문에 (대개의 경우 일반적으로).

은 당신이 나열 할 수 있습니다 떠들썩한 인스턴스에 설정된 여러 가지 변수가 있습니다

$ set 
BASH=/bin/bash 
BASHOPTS=checkwinsize:cmdhist:… 
BASH_ALIASES=() 
BASH_ARGC=() 
. 
. 
SHLVL=1 
SSH_AGENT_PID=853 
SSH_AUTH_SOCK=/tmp/ssh-Ofupc03xWIs7/agent.795 
TERM=xterm-256color 

을하지만, 그들 중 많은 사람들이 환경 변수가 없습니다. 예 :

$ echo "$PPID" 
1062 

$ env | grep PPID 

export을 사용하여 환경에 변수를 추가 할 수 있습니다. 그래서 PS1은 환경 변수로 설정 될 수있다 :

$ export PS1 
$ env | grep PS1 
PS1=\[email protected]\h:\w\$ 

그리고 변수는 내 보내지 않은 (단지 내 보내지 않은 변수의 값을 유지합니다) 선언과 수출 플래그 제거 될 수있다 :

$ declare +x PS1 
$ env | grep PS1 
$ echo $PS1 
\[email protected]\h:\w\$ 

또는, 더 크게, unset 변수를 보내고 기준 :

배쉬에서
$ unset PS1 
$ env | grep PS1 

, declare 변수의 깃발을 인쇄하는 데 사용할 수 :

$ declare -p PS1 
declare -- PS1="\${debian_chroot:+(\$debian_chroot)}\\[email protected]\\h:\\w\\\$ " 

$ export PS1 

$ declare -p PS1 
declare -x PS1="\${debian_chroot:+(\$debian_chroot)}\\[email protected]\\h:\\w\\\$ " 

변수를 내 보낸 후 -x에 유의하십시오.

+0

내 시스템에 PS1.set | grep PS1 PS1 = '\ h : \ W \ u \ $'. 또한 변수를 환경에 영구적으로 추가 할 수 있습니다. –

+0

@terencehill 무슨 뜻인가요? PS1을 변수로 사용한다는 것입니까? 예,이 시스템에도 있습니다. 환경 변수로? 때로는 그럴 수도 있습니다. – sorontar

+0

환경 변수가 시스템 시작시로드되는 변수라는 것을 의미합니다. –

2

변수 PS1이 설정되는 위치에 따라 지역 또는 환경으로 간주 될 수 있습니다 (환경 설정에 대해서는 post 참조).

로컬 인 경우 env으로 인쇄 할 수 없습니다. 그러나 세트으로 인쇄 할 수 있습니다.

+0

그리고'declare + x var'를 사용하여 환경 변수를 제거 할 수 있습니다. – sorontar

관련 문제