리눅스 쉘 스크립트

여름노래불러줘·2022년 10월 24일
0

셔뱅

스크립트 파일 최상단에 기입. 어떤 쉘로 구문을 분석할지 지시

#!/bin/zsh
#!/bin/sh
#!/bin/bash

주석

#!/bin/zsh
# 나는 주석이다. 프로그램 실행에 영향을 미치지 않지. 

변수

다른 언어들과의 차이점

  • 변수에 저장되는 값은 모두 문자열
  • 변수 생성시 = 기호 사이 공백 없어야 함
  • 변수 사용시 변수 앞에 $ 기호를 붙이거나 ${} 로 감싸기
  • 변수에 새 값 할당 시는 $ 사용 안함.

예약된 변수

변수역할
$0스크립트 파일명
$1~$9각 매개변수 ($1, $2, $3, ..., $9 로 접근)
$#스크립트에 전달된 매개변수 갯수
$*모든 매개변수를 하나의 문자열로 처리
$@모든 매개변수를 별도 문자열로 처리
$?직전 실행한 명령어의 종료 값(성공은 0, 실패는 1)
$$실행된 스크립트의 PID
$!마지막으로 실행된 백그라운드 PID
#!/bin/zsh
echo $0
echo $1
echo $#
echo $*
echo $@
echo $?
echo $$
echo $!

run: ./script.sh one two three

script.sh
one
3
one two three
one two three
0
60759
0

변수 값 치환

변수가 아직 설정되지 않았을 때나 빈 문자열 일때 변수를 처리하는 방법

문법역할
${var}변수 값을 바꿔 넣음
${var:-value}변수가 빈 문자열이거나 아직 설정되지 않은 경우 value 반환. var에 저장되지 않음
${var:=value}${var:=value}와 동일하나 var에 저장 됨
${var:?value}변수가 빈 문자열이거나 아직 설정되지 않은 경우 치환 실패 및, 표준 에러 반환
${var:+value}변수가 설정되지 않은 경우 value 반환. var에 저장되지 않음

0개의 댓글