. command 와 ./command 차이

jw0717의 이미지
3260
points
0
points

a란 쉘스크립트가 있습니다 root.root 에 644 x권한은 없습니다.

그런데 현재 디릭토리를 의마하는걸로 . a 하면 실행이 되는데

절대경로의미인 ./a 하면 권한 에러가 나오는군요.

path는 잡혀있지 않습니다. 그리고 권한을 +x 해주니

./a도 실행이 됩니다. 어떤 차이점이 있는지요.

서지훈의 이미지
12565
points

$ echo $PATH$ whereis a.a라는 프로그램(혹

0
points

$ echo $PATH
$ whereis a

.a라는 프로그램(혹은 스크립트)가 위의 어딘가에 있을 겁니다.
그래서 ./(현재 디렉토리의미)의 a라고 하면은 실행이 되질 않는 겁니다.
현재 디렉토리에 실행 가능한 a가 없기 때문.
그리고 파일명의 제일 앞에 분은 .(dot)은 이 파일의 종류(hidden)를 말해주는 것입니다.
현재 디렉토리를 의미하는게 아니라.

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

jw0717의 이미지
3260
points

[quote="서지훈"]$ echo $PATH$ whereis a

0
points

서지훈 씀:
$ echo $PATH
$ whereis a

.a라는 프로그램(혹은 스크립트)가 위의 어딘가에 있을 겁니다.
그래서 ./(현재 디렉토리의미)의 a라고 하면은 실행이 되질 않는 겁니다.
현재 디렉토리에 실행 가능한 a가 없기 때문.
그리고 파일명의 제일 앞에 분은 .(dot)은 이 파일의 종류(hidden)를 말해주는 것입니다.
현재 디렉토리를 의미하는게 아니라.

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

아 제가 좀 잘못썼네요. .a 히든파일이 아닌 . a 이건데.. . a 현재 디렉토리 의

미아닌가요.. . ./a 는 x 권한이 없으니까 퍼미션디나이에러는

이해가 갑니다. 그런데 현재 디렉토리를 의미한는 뜻으로

. a 를 실행시키면 실행이 된다는거죠. 물론 path는 안잡혀있고요

Re: . command 와 ./command 차이

1
point

jw0717 씀:

그런데 현재 디릭토리를 의마하는걸로 . a 하면 실행이 되는데

Bash의 man page를 보면,

인용:

. filename [arguments]
source filename [arguments]

Read and execute commands from filename in the cur
rent shell environment and return the exit status
of the last command executed from filename.
...

즉, . asource a와 같습니다. 참고하세요~ :)

feanor의 이미지
9014
points

bash에서는 ". a"와 "source a"가 같습니다만, ". a"는

0
points

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

Re: . command 와 ./command 차이

0
points

sseopark 씀:

즉, . asource a와 같습니다. 참고하세요~ :)

source 는 원래 csh 의 명령이랍니다. 이외에도 몇 개 csh 명령이 bash 에서 구현된 게 있죠.

dcmru의 이미지
1725
points

게시글이 오래되었지만 답변해봅니다.

0
points

. a 또는 . ./a 이렇게 쓰시면 됩니다.

./a는 당연히 실행 권한이 있어야 되겠구요.

. 은 명령을 뜻하는 것으로 . a 에서 실행된 값이 . a를 실행한 스크립트에 영향을 줍니다.
----------------
노력만이 살길이다.

onion의 이미지
1916
points

여담입니다만....

0
points

"bash 현재디렉토리에있는스크립트이름"

식으로하면 권한없어도 됩니다...-.-;

-----새벽녘의 흡혈양파-----

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.