31-2장. 쉘 프로그래밍과 환경설정파일
● Test와 [] 구조
- 형식
if test -f abc.c 또는 if [ -f abc.c]
then
......
fi
● for 구문
for variable in values
do
statements
done
● while 구문
while condition
do
statements
done
※ condition이 참인 동안에 statements 실행
● until 구문
until condition
do
statements
done
※ condition이 참일 때까지 statements 실행
vi untiltest.sh
위와같이 파일을 편집한다.
untiltest.sh 파일이 생성된 것을 확인하고
파일에 실행권한을 주자.
chmod 755 untiltest.sh
./untiltest.sh
파일을 실행해보면 잘 된다.
이제 john이라는 특정 사용자에 적용시켜서 사용해보자.
./untiltest.sh john &
john이라는 사용자에 적용시켜서 & 백그라운드로 실행한다.
john은 첫번째 파라미터($1)이므로 john이 접속할때까지 이 파일은 sleep 할 것이다.
john 사용자가 없으면 생성하고 비밀번호를 부여한다.
Ctrl + Alt + F1을 눌러 텍스트 모드로 전환하자.
그리고 john 사용자로 로그인을하면
위와같이 자동으로 john이 접속했음을 알려준다.
● case 구문
case variable in
pattern [ | pattern] ...... statements;;
pattern [ | pattern] ...... statements;;
esac
● AND 리스트 (&&) : true 이면 오른쪽 문장 실행
● OR 리스트 (||) : false 이면 오른쪽 문장 실행
● 함수
- 추후 호출하기 위해서 메모리에 적재됨
- 함수 정의는 메모리에 적재되기만 할 뿐 실행되는 것은 아님
- 호출 : 함수명 arg1 arg2 ......
● continue
- for, while, until 에서 사용
● break
- for, while, until 에서 사용
● : (NULL)
- true 대신 사용. (true 보다 빠름)
- 무한루프에서 사용 (while :)
● eval
- 인수를 평가
● expr
- 인수를 수식으로 평가
- (')가 아니라 ( )
- 띄어쓰기 주의
- $(( )) 와 동일함
● exit n
- 0 : 성공, 1~125 에러코드
- 126(예약) : 파일이 실행가능하지 않았다.
- 127(예약) : 명령이 발견되지 않았다.
- 128이상(예약) : 시그널이 발생했다.
● export 변수명
- 변수를 전역변수로 처리하기 ◀