변수의 입력, 출력
vi, vim 에서 첫 줄에 #!/bin/sh 입력
마지막 줄에 exit0
variable = 안녕 (x)
variable=안녕 (o)
variable=셸 스크립트 (x)
variable="셸 스크립트" (o)
echo $variable
echo '$variable'
echo $variable
variable="안녕"
read variable
(쓰고싶은 글 입력~)
echo 'variable
(출력-> variable = 쓰고싶은 글 입력~)
숫자 계산
변수에 대입된 값은 모두 문자열로 취급한다.
변수에 들어있는 값을 숫자로 해서 +, -, *, / 등의 연산을 하려면 expr을 사용해야 한다.
수식에 괄호 또는 곱하기는 항상 그 앞에 역슬래쉬 \ 를 붙인다.
ex)
num1=100
num2=$num1+200
echo $num2
출력 -> 100+200
num3='expr$num1+200' 따옴표가 아니라 1 왼쪽에 있는 ` 이것. 마크다운 때문에 역따옴표(?)를 못 쓰고있음
echo $num3
출력 -> 300
num4='expr($num1+200)/10\ *2'
echo$num4
출력-> 60
파라미터 변수
파라미터 변수는 $0, $1, $2 의 형태를 가진다
전체 파라미터는 $* 로 표현한다.
기본 if문
#!/bin/sh
if [조건]
then
echo "참입니다." //(참일 경우 실행)
else
echo "거짓입니다." //(거짓인 경우 실행)
fi
exit0
#!/bin/sh
fname=/lib/systemd/system/sshd.service
if [-f$fname] // -f: 파일이 읽기 가능하면 true, 아니면 false를 반환
then
head-5 $fname
else
echo "sshd 서버가 설치되지 않았습니다."
fi
exit0
case~esac 문
if문: 참과 거짓 두 경우만 사용(2중 분기)
case문: 여러 가지 경우의 수에 사용(다중 분기)
#!/bin/sh
case "$1" in
start)
echo "첫 번째 분기";;
stop)
echo "두 번째 분기";;
restart)
echo "세 번째 분기";;
*)
echo "그 외";;
esac
exit0
반복문 for문
for(int i=0 ; i<0; i++)
for 변수 in 값1, 값2, 값3
do
반복할 내용
done
ex 1)
#!/bin/sh
hap=0
for i in 1 2 3 4 5
do
hap='expr$hap+$i'
done
echo "1부터 10까지의 합: "$hap
exit0
ex 2)
ex) <span>for 변수 in $(ls*.sh)<span> //sh 확장자를 가진 목록들을 다 넣는다
expr 계산 시 따옴표가 아니라 1 왼쪽에 있는 ` 이것. 마크다운 때문에 역따옴표(?)를 못 쓰고있음
while, until문
#!/bin/sh
while [1] //until문은 while 자리에 until을 쓰면 된다.
do
echo "반복문"
done
exit0
문자열을 명령문으로 인식하고 실행한다.
외부 변수로 선언해 준다.
출력문
리눅스 명령어를 결과로 사용하기 위해서 $(명령어) 형식을 사용한다.
결과를 파라미터로 사용할 때는 set 사용
#!/bin/sh
echo "오늘 날짜는 $(date)입니다.
set$(date)
echo "오늘은 $4 요일 입니다."
exit0
파라미터 변수를 왼쪽으로 한 단계씩 옮긴다.
출처
[2020 개정판] 이것이 리눅스다(CentOS 8)07장-01교시 셸스크립트-셸 스크립트 개요, 작성법, 실행법, 변수