변수 내용 의 삭제, 대체, 교체 (상용)
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 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.