中かっこ拡張がサポートされていないのはなぜですか?

中かっこ拡張がサポートされていないのはなぜですか?

支柱の拡張を有効にするには構成を実行する必要がありますか?私がそれを実行するとmkdir {1..10}、それは名前の付いたディレクトリを作成するだけです{1..10}

答え1

支柱の拡張は1970年代後半に始まり、{1,2}1980年代後半と1990年代初頭にcshBourneのようなシェルに導入されましたが、bashこの変形は1995年(2.6-beta 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'

関連情報