./과 source명령어의 차이점을 설명해 주세용

camieru의 이미지

./과 source명령어의 차이점이 무엇입니까?

어떤건 source명령어로 되는데 안되서 ./로 해봤더니 됩니다.

무슨 차이가 있는것인지 설명 부탁드립니다.

yeonpil_net의 이미지

. 는 과거 본쉘시절부터 내려온 것이고.
source는.에 대해 같은 역할을 하는 BASH의 기능
. 은 너무 읽기 힘들잖아요.. :)

쉘이 bash가 아닌 상황에서 돌아가는 것을 생각하려면 .을 사용

/bin/sh
가 보통은 /bin/bash로 심볼릭이죠?
우분투는 /bin/dash라는 녀석이고.

https://wiki.ubuntu.com/DashAsBinSh#source
에 보면 한줄로 써있네요..

The source builtin is a bashism. Write this simply as . instead.

!23456---1----+----2----+----3----+----4----+----5----+----6----+----7-2--+----8
"배웠다"는 "할 수 있다"의 동의어가 아니다.

qiiiiiiiip의 이미지

. 과 source의 차이를 물어보시는게 아니라 (두개는 같습니다.)

./file.sh 를 실행하는 것과 source ./file.sh 라고 실행하는 것의 차이를 물어보시는 것 같네요.

뒤의것은 파일 내용을 그대로 타이핑하는 것과 동일합니다.

앞의 것은 맨 첫줄(shebang이라고 불리는, 예를 들어 #!/bin/bash, 없으면 /bin/sh )
에 있는 shell/interpreter 새로 create해서 그 아래 내용을 차례로 수행하는 것입니다.

많이 다르죠