환경변수 PWD, OLDPWD 관련하여 질문드립니다.
739
投稿した質問数 2
안녕하세요 강사님.
환경변수 PWD, OLDPWD에 관하여 질문드립니다.
쉘을 두개 띄워놓고 해당 환경변수를 출력하면 각 쉘에서 나온 값이 다르게 나오더라고요.
어떻게 서로 다른 쉘에서 같은 문자의 환경변수가 다른 값을 갖는지 궁금합니다.
아래는 구글링을 좀 하면서 서로 다른 값을 가질수 있는 방법을 생각해본것인데 맞게 추론한것인지 궁금합니다.
export로 로컬 환경변수를 생성 또는 수정할 수 있다. 그렇다면 혹시 PWD, OLDPWD는 로컬 환경 변수로 동작하는 것이 맞을까요?
그리고 만약 로컬 환경변수가 맞다면 cd를 실행하면 cd 프로그램(프로세스?)에서 환경변수를 바꾸는 것인지, cd 프로그램은 쉘의 자식 프로세스인데 자식 프로세스가 부모 프로세스의 로컬 환경변수를 바꿀 수 있는지 궁금합니다.
回答 1
1
안녕하세요 우댕님
먼저, 서로 다른 터미널이라면 서로 다른 bash process가 실행 중인 것입니다. echo $$를 해보시면 실행 중인 bash의 pid를 확인하실 수 있습니다.
말씀하신 PWD, OLDPWD는 bash의 환경 변수입니다. PWD나 OLDPWD 같은 환경 변수는 bash가 자동으로 적합한 값을 설정해줍니다. 이는 bash 프로세스 수준에서 환경 변수를 제어해주기 때문에 서로 다른 터미널에서 실행 중인 두 bash에서는 같은 이름의 환경 변수가 서로 다른 값을 가질 수 있습니다. 환경 변수 뿐만 아니라 일반 변수나 export로 선언된 변수 모두 bash 마다 관리하고 있기 때문에 서로 다른 값을 가질 수 있습니다.
의문이 풀리셨길 바라겠습니다. 감사합니다!
ls -al /var/log/nginx
0
20
2
이번강의
0
17
2
버추얼박스 오류
0
21
1
세월이 흘러 문제가 바뀐 것 같습니다.
0
13
2
수업자료는 없나요?
0
10
1
실습환경
0
26
2
키페어 설정
0
36
2
vi 줄 정렬하신 방법에 대해 문의드립니다.
0
30
1
말이 좀 헷갈립니다 강님
0
34
2
질문답변 부탁드립니다
0
26
1
Trace32 function 함수 조회 Makefile 수정 부분
0
30
1
쉘에서 한글 치는방법
0
52
2
리눅스 가상머신 설치
0
49
2
강의 잘못된부분
0
47
1
강의 순서
0
132
1
환경변수 질문
0
298
1
정규표현식
0
268
1
case 문이 강의에서 안보여요
0
306
2
두개의 창띄우기
0
336
1
for 문에서 리스트 질문요!!
0
229
1
declare 관련하여서 궁금한게 있습니다!
0
272
1
함수 return 값과 출력하는 값 동시에 가져오기
0
543
1
수업 관련 질문 몇 가지 있습니다..
0
431
1
혹시 해당 강의에 대한 문서는 없나요?
0
415
1

