본문 바로가기

Linux

쉘프로그래밍

Shell 프로그래밍 생성 , 실행

- shell 파일에 실행 퍼미션 설정 : # chmod +x [파일이름]

- ./ 또는 sh 명령으로 실행 : # ./ [파일이름] 또는 # sh [파일이름]

- shell 작성시 첫 라인 주석으로 표기 : #!/bin/bash (bash 쉘에서 작성했다는 표기)

 

Shell 변수 , 환경변수

- # a=1 (a라는 변수에 1 값 지정) , # echo $a (echo와 $으로 확인) , # set (특정 쉘에서의 정보 출력)

- # export a (a의 변수를 모든 쉘에 적용) , # env (환경변수에 대한 정보 출력)

- # unset a (a에 선언된 변수 제거)

 

아규먼트 변수

- 특별한 내장변수로 위치 매개변수로 사용한다.

- 매개변수를 불러올때 스크립트의 명령행 인자로 사용한다.

option

- $0 : 실행된 쉘 스크립트 이름

- $1 : 스크립트에 넘겨진 첫번째 아규먼트

- $2 : 스크립트에 넘겨진 두번째 아규먼트

- $# : 스크립트에 넘겨진 아규먼트의 개수

- $$ : 쉘스크립트의 프로세스ID

- $* : 스크립트에 전달된 인자 전체를 하나의 변수에 저장하며 IFS환경변수의 첫번째 문자로 구분

- $@ : $*와 동일 (다른점은 IFS환경변수를 사용하지 않음)

- $? : 실행한 뒤의 반환값, 참이면 0 , 거짓이면 1 로 표시

 

- 쉘스크립트 구동시 $? 에 출력되는 종료코드

- 0 (성공) , 1 ~ 125 (에러) , 126 (파일이 실행가능하지 않음) , 128 ~ 255 (시그널 발생)


예)

#vi argument.sh                              - #./argument.sh a b c

------------------------------------------------------------------------------------------------------------------

#!/bin/bash                                          

  echo "This script file $0"                         - This script file ./argument.sh

  echo "Argument Count is $#"                   -  Argument Count is 3

  echo "Process ID is $$"                          -  Process ID is 31779

  echo "Argument List \$* : $*"                  -  Argument List  $* : a b c

  echo "Argument List \$@ : $@"               -  Argument List $@ : a b c

  echo "Argument 1 : $1"                            -  Argument 1 : a

  echo "Argument 1 : $2"                            -  Argument 2 : b

  echo "Argument 1 : $3"                            -  Argument 3 : c

  echo "This script code $?"                      -  This script code 0


'Linux' 카테고리의 다른 글

7zip - 압축 프로그램  (0) 2009.02.10
Linux directory structure  (0) 2009.01.19
Centos 5.2에서 MP3재생하기  (0) 2008.12.13
쉘프로그래밍 비교연산  (0) 2008.11.24
리눅스 커널 정보 변경  (0) 2008.11.20
리눅스 백업 - rsync  (0) 2008.11.17