본문 바로가기
리눅스공부/셸 스크립트 프로그래밍

[프로그래밍] 셸 스크립트 프로그래밍 / 리눅스 셸 스크프립트 실행방법

by 으노으뇨 2022. 12. 20.
728x90
반응형
SMALL

셸 스크립트 작성과 실행

nano name.sh

명령이나 

gedit name.sh

명령을 실행해 간단한 셸 스크립트를 작성해보겠습니다.

* 셸 스크립트 파일의 확장명을 지정하지 않거나 다른 것으로 지정해도 되지만, 사용자가 작성한 셸 스크립트 파일은 되도록 확장명을 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 계정에서도 실행해보았다.

 

728x90
반응형
LIST

댓글