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