Linux/쉘스크립트

(shell script) 문자열 패턴 비교

쿠카이든 2023. 2. 5. 11:35
728x90
문자열 패턴 비교
  • 패턴 비교는 일종의 문자열을 연산하는 것으로 특정한 pattern을 놓고 변수의 문자열 값이 일부분이라도 이 패턴과 일치하는지 검사할 때 쓰인다.
  • 이 패턴에는 와일드카드 문자 ( *, ?, [ ] 를 포함한 문자 세트)를 포함해도 된다.
 ${#var} 변수 var가 가지는 문자열의 길이를 구한다.
 ${var:-word} 1. 변수 var의 값이 null이 아니면 : var의 값을 반환, var의 값은 변하지 않는다.
2. 변수 var의 값이 null이면 : word의 값을 반환, var의 값은 변하지 않는다.
 ${var:=word} 1. 변수 var의 값이 null이 아니면 : var의 값을 반환, var의 값은 변하지 않는다.
2. 변수 var의 값이 null이면 : word의 값을 반환, var의 값은 word의 값으로 대체된다.
 ${var:+word} 1. 변수 var의 값이 null이 아니면 : word의 값을 반환, var의 값은 변하지 않는다.
2. 변수 var의 값이 null이면 : null을 반환, var의 값은 변하지 않는다.
 ${var:?word} 1. 변수 var의 값이 null이 아니면 : var의 값을 반환, var의 값은 변하지 않는다.
2. 변수 var의 값이 null이면 : null이면 에러 메시지인 word를 출력하고, 쉘 스크립트를 종료한다.

2번 째 경우이고 word가 생략되었다면 "parameter null or not set" 라는 메시지를 출력하고 쉘 스크립트를 종료한다.
 ${var%pattern} 끝에서 부터 word와 패턴이 일치하는 var의 최소 부분(첫번째 일치)을 제거하고 나머지를 반환한다.
 ${var%%pattern} 끝에서 부터 word와 패턴이 일치하는 var의 최대 부분(마지막 일치)을 제거하고 나머지를 반환한다.
 ${var#pattern} 처음 부터 word와 패턴이 일치하는 var의 최소 부분(첫 번째 일치)을 제거하고 나머지 부분을 반환한다.
 ${var##pattern} 처음 부터 word와 패턴이 일치하는 var의 최대 부분(마지막 일
 
#!/bin/bash

# var not exists
unset var1
echo ${var1:-string2}

# var exists
var1=string1
echo ${var1:-string2}


var1=/var/log/apt
echo ${var1#*/}

echo ${var1##*/}


var2=/var/log/apt/log/ifconfig.cfg
echo ${var2%log*}

echo ${var2%%log*}

 

$ ./script.sh
string2
string1
var/log/apt
apt
/var/log/apt/
/var/

 

출처 : https://inpa.tistory.com/entry/LINUX-%EC%89%98-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%95%B5%EC%8B%AC-%EB%AC%B8%EB%B2%95-%EC%B4%9D%EC%A0%95%EB%A6%AC

 

[LINUX] 📚 BASH 쉘 프로그래밍 문법 마스터 💯 총정리 (+ 연습예제)

Shell Script 란 Shell Script는 Shell이나 command line 인터프리터에서 구동되도록 작성된 스크립트다. 윈도우에서는 batch(배치파일, .bat) 을 한번쯤은 본적이 있을 것이다. bat 파일을 실행하면 프로그램이

inpa.tistory.com

 

728x90

'Linux > 쉘스크립트' 카테고리의 다른 글

(shell script)expr & bc  (0) 2023.02.07
쉘스크립트 예제  (2) 2023.02.06
쉘 배열문이란?  (0) 2023.02.03
쉘 조건문 - if문  (2) 2023.02.01
let 연산자와 $(( )) 연산자 예제  (0) 2023.01.31