답변1
bash
매뉴얼 에서 (강조):
시퀀스 표현식은 합계가 정수 또는 단일 문자이고 선택적으로 증분은 정수인 형식
{x..y[..incr]}
을x
취y
합니다incr
. 정수가 제공되면 표현식은 그x
사이의 모든 숫자 로 확장됩니다y
. 제공된 정수 앞에 접두어를 붙여0
각 항목의 너비를 동일하게 만들 수 있습니다.x
또는 0으로 시작 하면y
쉘은 생성된 모든 용어에 필요한 경우 0 패딩을 사용하여 동일한 자릿수를 포함하도록 시도합니다.x
문자가 제공되면 표현식은 기본 C 로케일을 사용하여 및 사이의 모든 문자(포함) 로 사전식으로 확장됩니다 .y
두 가지 모두x
동일한y
유형이어야 합니다. 델타가 제공되면 각 항목 간의 차이로 사용됩니다. 기본 증분은 적절하게 1 또는 -1입니다.
문자 범위를 사용한 중괄호 확장은 와 사이의 문자를 허용합니다 bash
. 따라서 표시되는 것은 ASCII 테이블 G
안과 사이의 문자 입니다 a
(값이 테이블의 순서대로 표시되므로 기본 증분은 1입니다).
표준 ASCII 테이블의 마지막 대문자( Z
)와 첫 번째 소문자( a
) 사이에는 다음 문자가 있습니다.
[ \ ] ^ _ `
이 순서대로.
\
쉘은 이스케이프된 공백 문자를 리터럴 공백으로 처리하므로 출력되지 않습니다 . 또한 따옴표가 없는 역따옴표가 출력되므로 아래와 같이 예기치 않은 코드 실행이 발생할 수 있습니다.스테판이 지적했다2015년 메일링 리스트에 보낸 메시지에서 bug-bash
.
그러나 설명서에서 "입력"이 무엇을 의미하는지 잘 모르겠지만 {1..z}
(확장되지 않음)과 같은 문자와 숫자는 사용할 수 없는 것 같습니다.