Bash 4, 확장 및 소문자로 넣기

Bash> 4.0에서 변수 확장은 변수를 소문자로 지정하는 데 사용됩니다. 예를 들어

echo ${variable,,} 

맨 페이지 를 읽는 중입니다. 문자열을 소문자로 변환합니다.

시퀀스 표현식은 {x..y [.. incr]} 형식을 취합니다. 여기서 x와 y는 정수 또는 단일 문자이고 선택적 증분 인 incr은 정수입니다. 정수가 제공되면 표현식이 x와 y 사이의 각 숫자 (포함)로 확장됩니다. 제공된 정수는 0으로 시작하여 각 용어가 동일한 너비. x 또는 y가 0으로 시작하면 쉘은 생성 된 모든 용어에 동일한 자릿수를 포함하도록 강제로 시도하고 필요한 경우 0 채우기를 시도합니다. 문자가 제공되면 표현식은 x와 사이의 사전 식으로 각 문자로 확장됩니다. y (포함), 기본 C 로케일 사용. x와 y는 모두 동일한 유형이어야합니다. 증분이 제공되면 각 용어 간의 차이로 사용됩니다. 기본 증분은 1 o입니다. r -1.

변수가 소문자로 변환되는 이유는 무엇입니까?

답변

문서의 잘못된 섹션을 읽고 있습니다. 대신 셸 매개 변수 확장 을 확인하세요.

${parameter^pattern}

${parameter^^pattern}

${parameter,pattern}

${parameter,,pattern}

이 확장은 parameter에서 알파벳 문자의 대소 문자를 수정합니다. pattern는 파일 이름 확장과 마찬가지로 패턴을 생성하도록 확장됩니다. 확장 된 값 parameter에있는 각 문자는 pattern에 대해 테스트되며 패턴과 일치하면 대소 문자가 변환됩니다. 패턴은 두 개 이상의 문자와 일치하지 않아야합니다. ‘^’연산자는 패턴과 일치하는 소문자를 대문자로 변환합니다. ‘,’연산자는 일치하는 대문자를 소문자로 변환합니다. ‘^^’및‘,,’확장은 확장 된 값에서 일치하는 각 문자를 변환합니다. ‘^’및‘,’확장은 확장 된 값의 첫 번째 문자 만 일치하고 변환합니다. pattern를 생략하면 모든 문자와 일치하는‘?’처럼 처리됩니다. parameter가‘@’또는‘*’이면 대소 문자 수정 작업이 각 위치 매개 변수에 차례로 적용되고 확장이 결과 목록이됩니다. parameter가 @또는 *로 첨자 화 된 배열 변수 인 경우 대소 문자 수정 작업이 배열의 각 멤버에 차례로 적용되고 확장이 결과 목록입니다.

답변

“Brace Expansion”에 대한 부분을 인용하고 있습니다. “중괄호 확장”은 $로 시작하지 않습니다.

다음 명령을 실행해야합니다.

LESS=+/"\{parameter\^pattern\}" man bash 

$ (${ ^^ })로 시작하는 케이스 수정부분 찾기

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다