. command 와 ./command 차이

3260
points
points
a란 쉘스크립트가 있습니다 root.root 에 644 x권한은 없습니다.
그런데 현재 디릭토리를 의마하는걸로 . a 하면 실행이 되는데
절대경로의미인 ./a 하면 권한 에러가 나오는군요.
path는 잡혀있지 않습니다. 그리고 권한을 +x 해주니
./a도 실행이 됩니다. 어떤 차이점이 있는지요.
KLDPOpen Source, Geek, IT... |
|
사용자 로그인둘러보기KLDP 내용 검색KLDP Wiki |
points
$ echo $PATH$ whereis a.a라는 프로그램(혹
$ echo $PATH
$ whereis a
.a라는 프로그램(혹은 스크립트)가 위의 어딘가에 있을 겁니다.
그래서 ./(현재 디렉토리의미)의 a라고 하면은 실행이 되질 않는 겁니다.
현재 디렉토리에 실행 가능한 a가 없기 때문.
그리고 파일명의 제일 앞에 분은 .(dot)은 이 파일의 종류(hidden)를 말해주는 것입니다.
현재 디렉토리를 의미하는게 아니라.
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
points
[quote="서지훈"]$ echo $PATH$ whereis a
아 제가 좀 잘못썼네요. .a 히든파일이 아닌 . a 이건데.. . a 현재 디렉토리 의
미아닌가요.. . ./a 는 x 권한이 없으니까 퍼미션디나이에러는
이해가 갑니다. 그런데 현재 디렉토리를 의미한는 뜻으로
. a 를 실행시키면 실행이 된다는거죠. 물론 path는 안잡혀있고요
points
Re: . command 와 ./command 차이
Bash의 man page를 보면,
즉, . a는 source a와 같습니다. 참고하세요~ :)
points
bash에서는 ". a"와 "source a"가 같습니다만, ". a"는
bash에서는 ". a"와 "source a"가 같습니다만, ". a"는 Unix 표준이고 "source a"는 bash만의 확장이라는 차이가 있습니다.
Single Unix Specification, Version 2
Command & Utilities, Shell Command Language, dot
http://www.opengroup.org/onlinepubs/007908799/xcu/chap2.html#tag_001_014...
따라서 bash가 아닌 다른 쉘을 사용할 수 있게 하려면 source를 써서는 안 됩니다.
--feanor
points
Re: . command 와 ./command 차이
source 는 원래 csh 의 명령이랍니다. 이외에도 몇 개 csh 명령이 bash 에서 구현된 게 있죠.
points
게시글이 오래되었지만 답변해봅니다.
. a 또는 . ./a 이렇게 쓰시면 됩니다.
./a는 당연히 실행 권한이 있어야 되겠구요.
. 은 명령을 뜻하는 것으로 . a 에서 실행된 값이 . a를 실행한 스크립트에 영향을 줍니다.
----------------
노력만이 살길이다.
points
여담입니다만....
"bash 현재디렉토리에있는스크립트이름"
식으로하면 권한없어도 됩니다...-.-;
-----새벽녘의 흡혈양파-----