#!
은 스크립트를 실행할 쉘을 지정하는 선언문을 의미하는 명령어
따라서 #!/bin/bash
은 해당 파일을 bash 쉘로 실행시키겠다는 의미
default shell을 bash 쉘로 지정하면 작성을 생략하여도 동일하게 동작
쉘 스크립트 파일의 확장자는 .sh이다. .sh 파일을 생성 후 실행 권한까지 추가해주어야한다.
쉘은 여러 환경 변수 값을 가지고 있고, echo $환경변수이름 명령을 통해 설정된 환경 변수 값을 확인할 수 있다. export 환경변수=값 명령을 통해 환경 변수를 변경하거나 추가할 수 있다. printenv 명령으로 환경 변수와 값을 확인할 수 있지만, 일부 환경 변수는 나타나지 않을 수 있다.
> echo $LANG
ko_KR.UTF-8
> export $LANG=en_US.UTF-8
> printenv
# 한 줄 주석
: '
주석
TEST
'
or
: << "END"
주석
TEST
END
#!/bin/bash
name = donghyun
name = "donghyun KIM"
echo $VAR
export externalVAR="전역변수"
expr 명령어를 사용해 연산을 수행한다.
# 기본 연산
expr 1 + 2
# 변수에 연산 값 할당 (띄어쓰기, 백틱)
result=`expr 1 + 2`
# 결과 값 출력
echo $result
echo $(expr 1 + 2)
exit [리턴값]
~
~
exit 0
아무 값도 리턴하지 않을 시 리눅스에선 관행적으로 리턴 값을 0을 기입한다.
1 ~ 255 까지는 보통 오류코드로 나타낸다.
$0, $1, $2 와 같은 달러 형태로 작성하며
뒤에 오는 숫자는 인자의 n번째 수
! 공백에 유의하여야한다. 대괄호 띄고 조건
if [ 조건 ] ; then
code
fi
or
if test 조건 ; then
fi
if [ 조건 ] ; then
조건 == true
else
조건 == false
fi
case 변수 in
case1)
code
;;
case2)
code
;;
*)
code
;;
esac #별 뜻은 없고 단순 case를 반대로 써서 끝을 나타냄
값의 개수만큼 반복 실행
for i in 1 2 3 4 5
do
echo $i
done
or
for i in {1..5}
do
echo $i
done
조건이 참인 동안 계속 반복
while [ 조건식 ]; do
code
done
until문은 while문과 반대로 조건이 거짓인 동안 계속 반복
until [ 조건 ]; do
code
done
함수명() {...} 형태
func() {
# 매개변수 사용은 $1, $2, $3 ...
code in function
}