./***.sh 로 실행을 하면 child shell을 실행해서 거기서 ***.sh를 실행하는 개념이고요.
source나 '.' 으로 실행을 하면 현재 shell에서 실행을 하게 됩니다. 그러므로 source의 경우에는 bash shell에서의 include 개념으로 많이 사용하곤 합니다.
그리고 안되는 이유는 코드와 에러 메시지를 보여 주셔야 되겠죠. 동일한 결과를 가질 수도 있고 전혀 다른 결과를 가질수도 있기 때문입니다. 차이는 위의 차이라고 보시면 되고요.
spawn: command not found
couldn't read file "{": no such file or directory
No command '-re' found, did you mean:
Command 're' from package 're' (universe)
-re: command not found
exp_send: command not found
exp_continue: command not found
bash: log_backup.sh: line 9: syntax error near unexpected token `}'
bash: log_backup.sh: line 9: `}'
앞에분 설명과 똑같은 내용이지만,
source ***.sh 라고 하면,
***.sh 파일의 내용을 현재 shell에서 그대로 타이핑하는 것과 동일한 효과를 냅니다.
( # 으로 시작하는 라인은 대부분 shell에서 주석 )
현재 shell은 bash로 보이는데 bash에서 인정되지 않는 구문때문에 오류가 났고요.
./***.sh 를 실행하는 경우에는
***.sh 파일의 첫줄에 #! 으로 시작하는 라인이 있을텐데요. ( shabang )
#!/bin/expect 가 있다고 하면 ./***.sh 라고 실행하면
/bin/expect ***.sh 라고 실행하는 것과 동일한 효과입니다.
shabang 라인이 없으면 디폴트쉘인 /bin/sh 이 실행됩니다.
./***.sh 로 실행을 하면 child
./***.sh 로 실행을 하면 child shell을 실행해서 거기서 ***.sh를 실행하는 개념이고요.
source나 '.' 으로 실행을 하면 현재 shell에서 실행을 하게 됩니다. 그러므로 source의 경우에는 bash shell에서의 include 개념으로 많이 사용하곤 합니다.
그리고 안되는 이유는 코드와 에러 메시지를 보여 주셔야 되겠죠. 동일한 결과를 가질 수도 있고 전혀 다른 결과를 가질수도 있기 때문입니다. 차이는 위의 차이라고 보시면 되고요.
그리고 ubuntu의 기본 sh인 dash의 경우에는 bash와는 다르게 동작합니다.
답변 감사합니다
source 로 실행하면 아래와 같은 메세지가 뜨게 됩니다.
spawn: command not found
couldn't read file "{": no such file or directory
No command '-re' found, did you mean:
Command 're' from package 're' (universe)
-re: command not found
exp_send: command not found
exp_continue: command not found
bash: log_backup.sh: line 9: syntax error near unexpected token `}'
bash: log_backup.sh: line 9: `}'
앞에분 설명과 똑같은 내용이지만,source
앞에분 설명과 똑같은 내용이지만,
source ***.sh 라고 하면,
***.sh 파일의 내용을 현재 shell에서 그대로 타이핑하는 것과 동일한 효과를 냅니다.
( # 으로 시작하는 라인은 대부분 shell에서 주석 )
현재 shell은 bash로 보이는데 bash에서 인정되지 않는 구문때문에 오류가 났고요.
./***.sh 를 실행하는 경우에는
***.sh 파일의 첫줄에 #! 으로 시작하는 라인이 있을텐데요. ( shabang )
#!/bin/expect 가 있다고 하면 ./***.sh 라고 실행하면
/bin/expect ***.sh 라고 실행하는 것과 동일한 효과입니다.
shabang 라인이 없으면 디폴트쉘인 /bin/sh 이 실행됩니다.
댓글 달기