시작
#!/bin/bash
종료
exit 리턴값
변수
내부변수
$PWS : 작업 디렉토리
$# : 인자갯수
$1 : 1번째 인자
$n : n번째 인자
$? : 이전 실행 명령의 상태
변수
변수명=값 으로 정의되며, '=' 사이에 공백이 없어야한다. 변수의 값을 사용하는 경우는 $변수명이다. 변수의 타입은 없다. 산술연산의 경우 자동으로 숫자로 계산되고, 그냥 붙여 쓰면 문자열처럼 합쳐진다. 따옴표("", ')로 변수를 정의하는경우 특수문자를 그래도 인식하도록 한다.
sample=100
echo $sample
echo "value is $sample"
// 변수가 널일경우 기본값으로 설정
sample
echo ${sample=100}
조건
if [조건식]; then
else
fi
else if의 사용
if [조건식]; then
elif [조건식]; then
else
fi
파일테스트의 경우 아래 인자로 조건을 주어 검사한다.
-e 존재
-f 파일 여부
-s 파일크기 검사
-d 디렉토리 여부
-p 파이프 여부
-h 심볼릭 여부
-S 소켓 여부
case
sample=1
case $sample in
0) echo "0";;
1) echo "1";;
esac
루프
for i in 목록
do
명령
done
for i in [목록]; do
done
//목록 출력 예.
LISTS = "ITEM1 ITEM2 ITEM3"
for l in $LISTS
do
echo $l
done
//파일 리스트 출력 예.
for file in *; do
echo $file
done
c형태의 for루프. 이중 소괄호(( )) 는 산술 확장에 사용되는데, 해당 내부의 식을 계산해서 결과를 돌려주게 된다. 이중 소괄호를 사용해 (( a++ )) 과 같은 c형태의 산술연산이 가능하다. for문에서도 이를 사용하면 c와 같은 형태의 for 조건을 설정할 수 있다.
TOTAL=10
for ((i=0; a<TOTAL;i++))
do
done
while
while [조건]; do
done
인수참조
usage() {
echo "-arg1:"
echo "-arg2:"
}
// 루프를 돌며 첫번째 인자에 따라 변수에 저장한다.
// shift는 인자를 하나씩 줄임.
while [ "$1" != "" ]
do
case "$1" in
--arg1) value=1;;
--arg2) value=2;;
*) usage
esac
shift
done
입력
// 단순입력
read value
echo $value
// -r 의 경우 \ 문자도 포함
read -r value
// 배열 -a
read -a values
echo ${values[0]}
// 키입력
read -n 1 -p "input"
echo $REPLY
read -n 1 -p "input": value
echo $value
'시스템 > Linux' 카테고리의 다른 글
[VM] VirtualBox에 Ubuntu 18.04 server guest 설치 (0) | 2020.02.07 |
---|---|
특정일 이전 백업 파일 삭제하기 (0) | 2017.07.20 |
curl 간단 명령 (0) | 2017.04.03 |
EPEL/XRDP (0) | 2017.03.09 |
bonding 설정 (0) | 2017.02.19 |
SSH, 방화벽 관련 설정 (0) | 2017.01.20 |
[CentOS7] systemd 기본사항 (0) | 2017.01.20 |
[centos7] 방화벽 설정하기 (0) | 2017.01.20 |
패키징 관련 (0) | 2014.07.27 |