* 셸 스크립트 파일의 확장명을 지정하지 않거나 다른 것으로 지정해도 되지만, 사용자가 작성한 셸 스크립트 파일은 되도록 확장명을 sh로 지정하는 것이 좋습니다. 그러면 이름만으로 이 파일이 셸 스크립트 파일인줄 알 수 있기 때문입니다.
nano name.sh 를 통해 작성한 모습
1행
특별한 형태의 주석(#!)으로 bash를 사용하겠다는 의미이다. 첫행에 꼭 써주어야 한다.
2행
echo 명령은 화면에 출력하는 명령이다. 먼저 "사용자 이름:"이라는 글자를 출력하고 , 옆에는 $USER 라는 환경 변수의 내용을 출력한다.
3행
2행과 동일하면 이건 환경변수의 $HOME (디렉터리 )를 보여준다
4행
종료 코드를 반환하게 만든다. 만약 다른 스크립트에서 이 스크립트를 호출한 후 제대로 실행되었는지 보려면 적절한 종료 코드를 반환하는 것이 중요하다. 즉 이 행은 실제 스크립트 실행과 무관하지만, 셸 스크립트는 실행 중간에 문제가 생겨도 무조건 성공했다는 메시지를 반환하기 때문에 마지막 행에서 직접 성공인지 실패인지를 반환하는 것이 좋다. 0은 성공을 의미한다.
셸 스크립트 실행 방법
sh 명령으로 실행
sh스크립트파일 명령으로 실행할 수 있다. 셸 스크립트 파일의 속성을 변경할 필요가 없다는 장점이 있다. 아까 작성하던 name.sh를 저장하고 실행한모습
이때 실행 할땐
sh 실행할스크립트파일이름
을 통해서 실행하면 된다.
'실행 가능' 속성으로 변경 후 실행
먼저 셸 스크립트 파일의 속성을 '실행 가능'으로 변경한 후 ./스크립트파일 명령을 실행한다. 우선 해당 스크립트 파일이 실행가능인지 확인한다.
ls -l name.sh
을 통해 확인한다. 그 후 변경하는 방법은
chmod +x name.sh
명령을 통해서 변경해준다. 변경이 된것을 확인 하려면 다시 ls -l name.sh을 통해서 확인해주면된다. 그럼 바뀌어 있을 것이다.
위의 명령문으로 실행가능 파일로 변경해서 실행했다.
* ./스크립트파일 명령에서 ' . ' 은 현재 디렉터리를 의미한다. 그러므로 현재 디렉터리의 스크립트 파일을 실행하라는 의미이다. 반드시 현재 디렉터리인 ' ./ ' 를 입력하는 이유는 현재 디렉터리 ( 이 예에서는 /root) 가 $PATH 환경 변수에 설정되어 있지 않기 때문이다. 일반적으로 명령이나 스크립트 이름을 입력하면 셸은 $PATH 환경 변수에 설정된 디렉터리만 찾아본다.
echo $PATH 를 통해서 해당 환경변수의 값을 가져온 모습
중요한것은 아니지만 지금 작성한 셸 스크립트는 root 사용자 권한으로 작성했다. root 사용자만 사용할 수 있다고 볼 수 있으나, 이 셸 스크립트를 다른 사용자도 사용하게 하려면 /usr/local/bin 디렉터리에 복사하고 ( 만든 셸 스크립트를 ) 권한을 755로 변경한다 . 보안 상 위험할 수 있으므로 이 작업은 rooㅅ 사용자만 할 수 있다고 볼 수 있다..... 이렇게 루뜨 계정에서만든걸 ubuntu 계정에서도 실행해보았다.
댓글