alias 설정관련...고수님들.. 여기좀 봐주세요.

익명 사용자의 이미지

관리자가 Unix의 로그인 홈디렉토리의
.profile을 쓰기권한을 막아버렸는데요...
할수없이 쉘스크립트로 앨리어스를 다음처럼 만들었습니다.
cat a.sh
alias zab='cd /gift/trans' ; export zab

그래서 로그인한후 수동으로 a.sh을 실행후
프롬프트에서 zab하면 생각되로 trans 디렉토리로 cd가 안되는데
그이유가 뭐지요? 어떻게 하면될까요?
(korn shell입니당.)

익명 사용자의 이미지

그렇게 하면 subshell에서만 alias가 적용됩니다.

관리자에게 권한을 풀어달라고 하세요. .profile 소유도 root인가
요? /

익명 사용자의 이미지

관리상 권한을 풀어줄수 없다고 하는데.
그럼, 정녕 다른 방법은 없나요?

익명 사용자의 이미지

a.sh을 수행시키시면 안되고요 현재 쉘에서 읽도록 하면 될듯 한데요.
$ a.sh
이라고 하지 마시고
$ . a.sh
해 보세요. 아마 Bourne shell이 . 명령어였으니까 Korn shell도
그대로 먹을 듯 한데요, 안되면 source 라는 명령을 써 보시든지요.
$ source a.sh

$ a.sh 과 $ . a.sh 의 차이는 전자는
현재 쉘(프로세스)에서 차일드쉘(프로세스)를 생성한 후
차일드쉘에서 a.sh의 내용을 처리하는 거거든요.
그러니 아무리 차일드쉘에서 cd 를 하건 path를 바꾸건 환경변수를
설정하건 export를 하건 a.sh 수행이 끝나서 현재 쉘로
돌아오게 되면 작업한 내용이 없어지는 거죠.
후자의 경우에는 현재쉘에서 a.sh의 내용을 처리하는거져.
a.sh의 내용을 직접 현재쉘에서 손으로 쳐 넣는것과 동일한
효과를 가지는 거져.

수고여,,

seeker wrote..
관리자가 Unix의 로그인 홈디렉토리의
.profile을 쓰기권한을 막아버렸는데요...
할수없이 쉘스크립트로 앨리어스를 다음처럼 만들었습니다.
cat a.sh
alias zab='cd /gift/trans' ; export zab

그래서 로그인한후 수동으로 a.sh을 실행후
프롬프트에서 zab하면 생각되로 trans 디렉토리로 cd가 안되는데
그이유가 뭐지요? 어떻게 하면될까요?
(korn shell입니당.)

익명 사용자의 이미지

대단히 감사합니다.^^