변수 내용 의 삭제, 대체, 교체 (상용)
6677 단어 shell
변수 내용 삭제
${ parameter#*word}
${}: 키워드, 이 삭제 모드 가 존재 해 야 합 니 다.
parameter: 변수 이름;
\#: 변수 내용 의 맨 앞에서 오른쪽으로 삭제 하고 가장 짧 은 것 만 삭제 하 는 것 을 의미 합 니 다.
* word: 삭제 할 부분 을 대표 합 니 다. * 는 0 에서 무한 여러 개의 임의의 문 자 를 대체 하 는 마스크 입 니 다.
#: 변수 내용 의 맨 앞에서 오른쪽으로 바 꾸 는 텍스트 에 맞 는 '가장 짧 은' 하 나 를 삭제 합 니 다.
\#\#: 변 수 된 내용 의 맨 앞에서 부터 바 꾸 는 텍스트 에 맞 는 '가장 긴' 것 을 오른쪽으로 삭제 합 니 다.
예:
[root@www ~]# Dir=/usr/local/src
[root@www ~]# echo $Dir
/usr/local/src
[root@www ~]# echo ${Dir#*/}
usr/local/src
[root@www ~]# echo ${Dir##*/}
src
변수 내용 의 교체
${parameter/pattern/string}
${parameter//pattern/string}
${}: 키워드;
parameter: 변수;
키워드
pattern
: 일치 모드, 오래된 문자열
string
새 문자열
/.../..: 변수 내용 이 '오래된 문자열' 에 부합 되면 첫 번 째 오래된 문자열 은 새 문자열 로 대 체 됩 니 다.
//.../..: 변수 내용 이 '오래된 문자열' 에 부합 되면 모든 오래된 문자열 이 새 문자열 로 대 체 됩 니 다.
예:
[root@www ~]# Dir=/usr/local/src/usr/local/src
[root@www ~]# echo $Dir
/usr/local/src/usr/local/src
[root@www ~]# echo ${Dir/usr/USR}
/USR/local/src/usr/local/src
[root@www ~]# echo ${Dir//usr/USR}
/USR/local/src/USR/local/src
요약:
변수 설정 방식
기능.
${var#keyword}
변수 내용 이 처음부터 시 작 된 데이터 가 "keyword"에 맞 으 면 최 단 데 이 터 를 삭제 합 니 다.
${var##keyword}
변수 내용 이 처음부터 시 작 된 데이터 가 "keyword"에 부합 하면 최 장 데 이 터 를 삭제 합 니 다.
${var%keyword}
변수 내용 이 끝 에서 앞으로 의 데이터 가 "keyword"에 부합 되면 가장 짧 은 데 이 터 를 삭제 합 니 다.
${var%%keyword}
변수 내용 이 끝 에서 앞으로 의 데이터 가 "keyword"에 부합 되면 최 장 데 이 터 를 삭제 합 니 다.
${var/old_str/new_str}
변수 내용 이 "old str"에 부합 하면 첫 번 째 oldstr 는 newstr 교체
${var//old_str/new_srt}
변수 내용 이 "old str"에 부합 하면 모든 oldstr 는 newstr 교체
변수의 테스트 와 내용 교체
${parameter:-word}
${}: 키워드
parameter
변수
키워드
변수의 교체 내용
변수의 설정 방식
str 설정 없 음
str 빈 문자열
str 는 비 어 있 는 문자열 로 설정 되 어 있 습 니 다.
var=${str-expr}
var=expr
var=
var=$str
var=${str:-expr}
var=expr
var=expr
var=$str
var=${str+expr}
var=
var=expr
var=expr
var={str:+expr}
var=
var=
var=expr
var=${str=expr}
str=exprvar=expr
str 불변 var =
str 불변 var = $str
var={str:=expr}
str=exprvar=expr
str=exprvar=expr
str 불변 var = $str
var=${str?expr}
expr 를 stderr 로 출력
var=
var=str
var=${str:?expr}
expr 를 stderr 로 출력
expr 를 stderr 로 출력
var=str
상용 적
변수 바 꾸 기:
${parameter:-word}
Use Default Values. If parameter is unset or null, the expansion of word is substituted. Otherwise, the value of parameter is substituted.
기본 값 (변수 원래 내용 을 수정 하지 않 음) 을 사용 합 니 다. 변수 가 설정 되 지 않 거나 비어 있 으 면 워드 로 변 수의 기본 값 을 바 꿉 니 다. ${parameter: - word} 의 결과 반환 값 이 무엇 이 든 이 변수의 기본 값 이 설정 되 지 않 거나 비어 있 으 면 비어 있 습 니 다.
[root@www ~]# unset FQDN #
[root@www ~]# echo $FQDN
[root@www ~]# echo ${FQDN:-www.snkof.com} # , word
www.snkof.com
[root@www ~]# FQDN='' #
[root@www ~]# echo ${FQDN:-www.snkof.com} # word
www.snkof.com
[root@www ~]# FQDN=www.google.com.hk #
[root@www ~]# echo ${FQDN:-www.snkof.com} #
www.google.com.hk
[root@www ~]# echo $FQDN #
www.google.com.hk
${parameter:=word}
Assign Default Values. If parameter is unset or null, the expansion of word is assigned to parameter. The value of parameter is then substituted. Positional parameters and special parameters may not be assigned to in this way.
기본 값 지정,
기본 값 을 부여 합 니 다.변수 가 설정 되 지 않 거나 비어 있 으 면 워드 의 값 을 변수의 기본 값 으로 바 꾸 고 워드 의 값 을 이 변수 에 저장 합 니 다.위치 매개 변수 와 특수 매개 변 수 는 이런 방식 으로 설정 할 수 없습니다.
[root@www ~]# unset FQDN #
[root@www ~]# echo $FQDN
[root@www ~]# echo ${FQDN:=www.snkof.com} # , word
www.snkof.com
[root@www ~]# echo $FQDN # word FQDN
www.snkof.com
[root@www ~]# FQDN='' #
[root@www ~]# echo ${FQDN:=www.snkof.com} # word
www.snkof.com
[root@www ~]# echo $FQDN # word FQDN
www.snkof.com
[root@www ~]# FQDN=www.google.com.hk #
[root@www ~]# echo ${FQDN:=www.snkof.com} #
www.google.com.hk
[root@www ~]# echo $FQDN #
www.google.com.hk
많은 장면 에서 변수 가 원래 값 이 비어 있 을 때 워드 의 값 을 변수의 값 으로 바 꾸 고 그 다음 에 이 변수 에 저장 해 야 합 니 다.
${parameter: = word} 은 변 수 를 교체 할 수 있 을 뿐만 아니 라, 워드 의 값 을 변수의 값 이 비어 있 는 이 변수 에 할당 할 수 있 습 니 다.변수의 값 은 워드 입 니 다.
${parameter:?word}
Display Error if Null or Unset. If parameter is null or unset, the expansion of word(or a message to that effect if word is not present) is written to the standard error and the shell, if it is not interactive, exits. Otherwise, the value of parameter is substituted.
변수의 값 이 비어 있 거나 설정 되 어 있 지 않 으 면 더 이상 값 이 부여 되 지 않 습 니 다. 워드 를 오류 정보 로 표시 하지만 표준 오류 출력 에 출력 됩 니 다. 이 변수의 교체 결 과 를 잘 인용 하기 위해 서 는 직접 교체 할 수 있 습 니 다. 교체 결 과 는 나중에 참조 할 수 있 도록 다른 추가 변수 에 보관 할 수 있 습 니 다.
[root@www ~]# unset FQDN
[root@www ~]# echo ${FQDN:?novalue}
-bash: FQDN: novalue #
[root@www ~]# echo $FQDN
#FQDN , 。
이 오류 정 보 는 표준 오류 출력 으로 방향 을 정할 것 입 니 다.
${parameter: + word}: 대체 값 사용 하기
Use Alternate Value. If parameter is nullor unset, nothing is substituted, otherwise the expansion of word is substituted.
변수 가 비어 있 거나 끝 에 설정 되 어 있 으 면 아무것도 하지 않 습 니 다.변수 값 을 설정 하면 워드 의 값 을 이 변수의 값 으로 바 꿉 니 다.
[root@www ~]# echo $FQDN
#FQDN
[root@www ~]# echo ${FQDN:+www.google.com.hk}
#
[root@www ~]# echo $FQDN
#FQDN
[root@www ~]# FQDN=www.google.com.hk # FQDN
[root@www ~]# echo ${FQDN:+www.snkof.com}
www.snkof.com # , word
[root@www ~]# echo $FQDN
www.google.com.hk # FQDN
${parament: - word} 에 대응 하여 대응 하 는 값 만 표시 하고 변수 자 체 를 할당 하지 않 습 니 다.
어떤 변수 가 값 이 있 는 지 확인 한 후에 야 다른 값 을 사용 합 니 다.
다음으로 전송:https://blog.51cto.com/szyangxiao/1381035
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
✨〰️ ZI 〰️✨ Vim 구문❮ ZI ❯ 🧙♀️ Zsh를 위한 스위스 아미 나이프. 모든 것을 함께 붙일 수 있도록 설계되었습니다. zsh 유형의 파일에 있는 명령에 대한 Vim 구문 정의입니다. 📥 설치 Vim 플러그인으로 로드합니다. 예를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.