cd.sh 파일을 하나 만들었습니다.
1 #!/bin/bash 2 cd ~/
아주 간단합니다. 예전에 cshell에서 하면 되었던것 같은데...bash shell에서는 안되네요! alias로 해도 되지만...^^ bash shell에서 내장 명령어를 어떻게 해야하나요?
#!/bin/bash cd $HOME
------식은이 처------ 길이 끝나는 저기엔 아무 것도 없어요. 희망이고 나발이고 아무 것도 없어.
그렇게 해도 안되는데요^^;
PATH 조정이 안돼서 그러는거 아날까요?
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동 "만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
저걸 실행해도 홈디렉토리로 이동하지 않는 것은 당연한 겁니다 :)
/$ cat ~/public_html/cd.sh #!/bin/bash cd $HOME ls /]$ sh ~/public_html/cd.sh 2004.jpg Maildir check.xls blabla.. /]$ ls ~ 2004.jpg Maildir check.xls blabla..
새로운 쉘이 열리고 그 안에서 cd로 이동한 것이기 때문에... 대신 그 스크립트 안에서 ls를 해보면 이동해있죠 ㅎㅎ
. cd.sh 하거나 source cd.sh 하셔야 이동합니다.
위에 다른 분이 말씀하셨듯, 그냥 실행하면 독자적인 쉘이 실행되어 그 안에서 노는 것이기 때문에 해당 스크립트가 종료하면 스크립트를 위해 떴던 쉘도 종료하게 되는 것입니다. 그러니 이동한 디렉토리는 실제 작업중인 쉘에는 반영되지 않습니다.
. 이나 source는 같은걸로 알고 있는데, 기능은 뒤에 인자로 준 것을 실행할 때 사용하는 쉘을 현재 작업중인 쉘로 하는것입니다. 그 결과로 종료까지 했던 내용이 현재 쉘에 반영되게 되지요.
자세한 내용은 man bash 의 source 부분을 참조하세요:)
SOrCErEr
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
#!/bin/bashcd $HOME
#!/bin/bash
cd $HOME
------식은이 처------
길이 끝나는 저기엔 아무 것도 없어요. 희망이고 나발이고 아무 것도 없어.
그렇게 해도 안되는데요^^;
그렇게 해도 안되는데요^^;
PATH 조정이 안돼서 그러는거 아날까요?
PATH 조정이 안돼서 그러는거 아날까요?
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
혹시...
저걸 실행해도 홈디렉토리로 이동하지 않는 것은 당연한 겁니다 :)
새로운 쉘이 열리고 그 안에서 cd로 이동한 것이기 때문에...
대신 그 스크립트 안에서 ls를 해보면 이동해있죠 ㅎㅎ
. cd.sh 하거나 source cd.sh 하셔야 이동합니다.위
. cd.sh 하거나 source cd.sh 하셔야 이동합니다.
위에 다른 분이 말씀하셨듯, 그냥 실행하면 독자적인 쉘이 실행되어 그 안에서 노는 것이기 때문에 해당 스크립트가 종료하면 스크립트를 위해 떴던 쉘도 종료하게 되는 것입니다. 그러니 이동한 디렉토리는 실제 작업중인 쉘에는 반영되지 않습니다.
. 이나 source는 같은걸로 알고 있는데, 기능은 뒤에 인자로 준 것을 실행할 때 사용하는 쉘을 현재 작업중인 쉘로 하는것입니다. 그 결과로 종료까지 했던 내용이 현재 쉘에 반영되게 되지요.
자세한 내용은 man bash 의 source 부분을 참조하세요:)
SOrCErEr
댓글 달기