我需要进行任何配置才能启动大括号扩展吗?当我运行时mkdir {1..10}
,它只是创建一个目录命名{1..10}
。
答案1
虽然大括号扩展类似{1,2}
起源于70 年代末,并在 80 年代末、90 年代初csh
找到了类似 Bourne 的 shell ,bash
但该变体在 1995 年首次出现(2.6-beta4)。zsh
pdksh
{n1..n2}
zsh
bash
2004 年 (3.0) 和ksh93
2005 年 ( ksh93r
) 复制了它。
您尝试使用的 shell 可能不是这些,或者是bash
和的旧版本ksh93
。
答案2
{x..y}
范围大括号扩展在 bash 3.0-alpha 中实现。为了帮助我们和您自己,请展示您的echo "$BASH_VERSION"
输出。
那么答案是:如果 mkdir {1..10}
创建一个具有名称的目录{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'