예를 들어 사용자의 현재 프로세스 상태를 출력하고 로그아웃하는 스크립트를 만들려고 하는데요.. 잘 안되서 그렇거든요.. 좀 알려주세요..
$ cat > a.bash ps logout
이런식으로 만들어서 실행권한도 주고 ./a.bash로 실행했는데 ps만 실행되고 로그아웃 명령은 실행이 안되네요.. logout대신에 exit도 써봤는데 역시나 안되요.. 어떻게 해야되나요?
a.bash 스크립트 파일이 실행될때 새로운 쉘이 생성되어서 실행됩니다. 따라서 logout이나 exit명령이 새로이 생성된 쉘에 적용되어 실행되기 때문에 현재 쉘에서는 전혀 변화가 없습니다.
참고로 쉘스크립트를 실행하는 몇가지 방법이 있습니다.
$ source a.bash $ . a.bash $ bash a.bash $ chmod +rx a.bash;./a.bash
따라서 원하시는 동작을 수행하시려면
$ source a.bash $ . a.bash
텍스트 포맷에 대한 자세한 정보
<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]
a.bash 스크립트 파일이 실행될때 새로운 쉘이 생성되어서 실행됩니다.
a.bash 스크립트 파일이 실행될때 새로운 쉘이 생성되어서 실행됩니다.
따라서 logout이나 exit명령이 새로이 생성된 쉘에 적용되어 실행되기 때문에
현재 쉘에서는 전혀 변화가 없습니다.
참고로 쉘스크립트를 실행하는 몇가지 방법이 있습니다.
위에서 첫번째와 두번째는 현재 쉘에서 새로운 쉘이 생성되지 않고 실행됩니다.
그리고 세번째와 네번째는 현재 쉘에서 수행되지 않고 새로운 쉘이 생성되어서 실행됩니다.
따라서 원하시는 동작을 수행하시려면
이러한 방법을 사용하셔야 할 것 같습니다.
댓글 달기