[완료] 쉘 프로그래밍에서 현재 실행되는 쉘의 절대경로를 얻는 방법?
글쓴이: anabaral / 작성시간: 금, 2010/12/17 - 9:24오전
현재 실행되는 쉘의 절대경로를 얻고 싶습니다.
예를 들어
/home/coffee/getup/prod1/a.sh
이란 쉘 프로그램이 있어 이를 실행시킬 적에
어떻게 실행을 시켜도 그 안에서
/home/coffee/getup/prod1/a.sh
이 값을 얻을 수 있는 방법이 있나요?
대략 아래와 같이 다양하게 실행할 수 있습니다.
/home/coffee> getup/prod1/a.sh
/home/coffee/getup/prod1/test/ohmygod> ../../a.sh
/home/coffee/getup/prod1> ./a.sh
/home/coffee> /home/coffee/getup/prod1/a.sh
/home/coffee/getup/prod1> a.sh
/home/coffee/getup/prod1> sh a.sh
/home/coffee> sh getup/prod1/a.sh
/home/coffee> sh /home/coffee/getup/prod1/a.sh
korn shell에서도 쓸 거라서 가급적 일반적인 용법이 필요합니다.
미리 감사 드립니다~ ^^
Forums:
centos 에서 bash 사용하고 있는데 echo
centos 에서 bash 사용하고 있는데
echo $0
명령으로 확인해보니 항상 절대 경로가 출력되고 있습니다.
./test.sh 실행하면 ./test.sh 를 출력하고
/bin 으로 이동시킨후 test.sh 를 실행하면 /bin/test.sh 를 출력하고 있습니다.
ksh 에서 실행해보니 path 경로상에 있으면 그냥 파일명만 출력하는데
이때는 which 명령을 이용해서 출력하면 되지 않을까 싶습니다.
궁금해서 검색을 해봤더니 bash에서는 다음처럼 확인
궁금해서 검색을 해봤더니 bash에서는 다음처럼 확인 가능하네요.
답변 주신 분들 감사드립니다.
덕분에 수월하게 해결했네요..
woonuk님이 주신 해법을 아주 쬐금 손봐서 해결했습니다.
다시금 감사드립니다~
부랴부랴~~~
조금 간단하게
조금 간단하게 해보았습니다.
#!/bin/bash
cd ${0%/*} 2>/dev/null
echo $PWD/${0##*/}
댓글 달기