7. 셸 스크립트

HU·2022년 2월 25일
0

변수의 입력, 출력

vi, vim 에서 첫 줄에 #!/bin/sh 입력
마지막 줄에 exit0

값 대입은 띄어쓰기 없이

variable = 안녕 (x)
variable=안녕 (o)

공백이 포함된 값은 큰 따옴표로 묶을 것

variable=셸 스크립트 (x)
variable="셸 스크립트" (o)

변수의 값 출력은 echo $변수명

echo $variable

변수 자체를 출력하고 싶을 때는 작은 따옴표 or \

echo '$variable'
echo $variable

값 입력 read 변수명

variable="안녕"
read variable
(쓰고싶은 글 입력~)
echo 'variable=variable'=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문

  1. for(int i=0 ; i<0; i++)

  2. 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


eval

문자열을 명령문으로 인식하고 실행한다.

export

외부 변수로 선언해 준다.

출력문

set 과 $ (명령어)

리눅스 명령어를 결과로 사용하기 위해서 $(명령어) 형식을 사용한다.
결과를 파라미터로 사용할 때는 set 사용

#!/bin/sh
echo "오늘 날짜는 $(date)입니다.
set$(date)
echo "오늘은 $4 요일 입니다."
exit0

shift

파라미터 변수를 왼쪽으로 한 단계씩 옮긴다.


출처
[2020 개정판] 이것이 리눅스다(CentOS 8)07장-01교시 셸스크립트-셸 스크립트 개요, 작성법, 실행법, 변수

profile
지식 쌓기

0개의 댓글