중괄호 확장이 지원되지 않는 이유는 무엇입니까?

중괄호 확장이 지원되지 않는 이유는 무엇입니까?

버팀대 확장을 활성화하려면 구성을 수행해야 합니까? 내가 그것을 실행하면 mkdir {1..10}, 그것은 단지 이름이 붙은 디렉토리를 생성할 뿐입니다 {1..10}.

답변1

버팀대 확장은 1970년대 후반에 시작되어 {1,2}1980년대 후반과 1990년대 초반에 cshBourne과 같은 쉘에 도입되었지만 bash이 변형은 1995년(2.6-베타4)에 처음 나타났습니다.zshpdksh{n1..n2}zsh

bash2004년(3.0)과 ksh932005년( )에 ksh93r복사되었습니다 .

사용하려는 셸은 다음 중 하나가 아니거나 bash의 이전 버전 일 수 있습니다 ksh93.

답변2

{x..y}범위 중괄호 확장은 bash 3.0-alpha에서 구현됩니다. 우리와 당신 자신을 돕기 위해 당신의 결과물을 보여주세요 echo "$BASH_VERSION".

대답은 다음과 같습니다. mkdir {1..10}name 으로 디렉토리를 생성 하면 {1..10}이전 bash 버전을 사용하는 것입니다 bash 3.0-alpha. 이 경우 for 루프 구문을 사용할 수 있습니다.

for ((i=1;i<=10; i++)); do mkdir "$i"; done

답변3

Bash 버전을 확인하세요.

$ bash -version
GNU bash, version 4.1.7(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

또한 mkdir별칭이 이상한 방식으로 사용되었는지 확인하십시오.

$ alias |grep mkdir
alias md='mkdir'

관련 정보