특수 기호, .* # 중괄호 안 [중복]

특수 기호, .* # 중괄호 안 [중복]
bash=${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.}
echo "BASH VERSION --- $BASH_VERSION"
echo "bmajor ----- $bmajor"
echo "bminor ----- $bminor"

인쇄,

BASH VERSION --- 4.2.46(1)-release
bash --- 4.2
bmajor ----- 4
bminor ----- 2

저는 보통 배열 작업을 할 때 중괄호를 사용합니다 {}. 패턴 매칭에 사용되는 것을 여기서 보았습니다.

${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.}이 값을 평가하는 방법은 무엇입니까? 그리고 , 안의 특수문자는 무슨 *뜻인가요?.#{}

답변1

에서 인용배쉬 참조 매뉴얼:

  • ${parameter#word}

  • ${parameter##word}

    파일 이름 확장과 마찬가지로 단어가 확장되어 패턴을 생성합니다(파일 이름 확장자 참조). 패턴이 매개변수 확장 값의 시작과 일치하는 경우 확장 결과는 가장 짧은 일치 패턴("#"의 경우) 또는 가장 긴 일치 패턴("##"의 경우)이 있는 매개변수 확장 값이 됩니다. 제거됨. ...

  • ${parameter%word}

  • ${parameter%%word}

    파일 이름 확장과 마찬가지로 단어가 확장되어 패턴을 생성합니다. 패턴이 매개변수 확장 값의 후행 부분과 일치하는 경우 확장 결과는 가장 짧은 일치 패턴("%" 케이스) 또는 가장 긴 일치 패턴("%%" 케이스)이 있는 매개변수 값이 제거됩니다. ...

관련 정보