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/
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 |