周海汉 /文
2010.6.10
bash shell的扩展,指shell在分析输入命令时的一种将命令展开的操作。 有7种扩展方式。参考一下man bash的扩展页:
大括号(花括号)扩展方式也有意思。
示例1:操作多个文件名有共同点的文件
zhouhh@zhh64:~/brace$ ls
bk
zhouhh@zhh64:~/brace$ touch file{source,target,info,readme}.txt
zhouhh@zhh64:~/brace$ ls
bk fileinfo.txt filereadme.txt filesource.txt filetarget.txt
zhouhh@zhh64:~/brace$ echo file{1,2,3,4}.txt
file1.txt file2.txt file3.txt file4.txt
zhouhh@zhh64:~/brace$ touch file{1,2,3,4}.txt
zhouhh@zhh64:~/brace$ ls
bk file1.txt file2.txt file3.txt file4.txt
示例2:一个命令将几个文件名有规律的文件转移到一个目录
zhouhh@zhh64:~/brace$ ls bk
zhouhh@zhh64:~/brace$ mv file{1,2,3,4}.txt bk/.
zhouhh@zhh64:~/brace$ ls bk
file1.txt file2.txt file3.txt file4.txt
zhouhh@zhh64:~/brace$
示例3:备份
zhouhh@zhh64:~/brace$ touch mydata.log
zhouhh@zhh64:~/brace$ vi back.sh
zhouhh@zhh64:~/brace$ chmod +x back.sh
zhouhh@zhh64:~/brace$ cat back.sh
set -x #调试模式
bkdate=`date +%F` #日期
cp mydata{,$bkdate}.log #将log备份为带日期格式
zhouhh@zhh64:~/brace$ ls
back.sh bk mydata.log
zhouhh@zhh64:~/brace$ ./back.sh
+++ date +%F
++ bkdate=2010-06-10
++ cp mydata.log mydata2010-06-10.log
zhouhh@zhh64:~/brace$ ls
back.sh bk mydata2010-06-10.log mydata.log
示例4 处理多个有规律文件名
zhouhh@zhh64:~/brace$ echo /var/log/messages.{1..3}
/var/log/messages.1 /var/log/messages.2 /var/log/messages.3
zhouhh@zhh64:~/brace$ echo file{a..d}{1..3}.txt
filea1.txt filea2.txt filea3.txt fileb1.txt fileb2.txt fileb3.txt filec1.txt filec2.txt filec3.txt filed1.txt filed2.txt filed3.txt
示例5 for循环
zhouhh@zhh64:~/brace$ for i in {1..9..3}
> do
> echo $i
> done
1
4
7
参考:
http://www.thegeekstuff.com/2010/06/bash-shell-brace-expansion/#more-4614
分享到:
相关推荐
- **括号扩展**:如`{a,b,c}`,生成多个单词。 - **波浪号扩展**:如`~`,用于表示用户的家目录。 - **Shell参数扩展**:如`${var}`,用于引用变量的值。 - **命令替换**:如`$(command)`,执行命令并将输出作为替换...
]]`双括号内支持扩展的正则匹配,如`[[ string =~ pattern ]]`进行匹配。 12. **错误处理**:使用`set -e`开启退出错误检测,当命令执行失败时,脚本会立即停止。 13. **函数参数**:在函数内部,`$0`表示函数名...
在Shell脚本编程中,大括号({})扮演着至关重要的角色,它们被广泛用于各种语法结构和操作。下面将详细介绍大括号在Shell中的主要用途。 1. **数组定义**:在Shell中,大括号用于定义数组。例如,创建一个包含三个...
这些通配符在文件名扩展、文件搜索等场景中十分常见,能够极大地提高工作效率。 #### 总结 通过本文对Bash Shell的基础介绍,我们了解了其如何工作以及如何更有效地使用它。无论是通过自定义命令路径还是创建别名...
Bash Shell在处理命令行时会进行一系列的**命令行展开**步骤,包括别名展开、大括号展开、变量展开、命令替换、I/O重定向等。通过反斜线`\`或引号可以防止特定字符被扩展,如`\$`用于显示美元符号,`' '`阻止所有...
Bash(Bourne-Again SHell)是Unix/Linux操作系统中最常用的命令行解释器,它继承了Steve Bourne的原始Shell(sh)的特点,并在功能上进行了扩展。这份2014年的Bash参考手册详细阐述了Bash的各种特性和用法,是学习...
Bash Shell是GNU项目的一部分,它扩展了原始的Bourne Shell,并且是许多开发人员和系统管理员的首选工具。以下是关于Bash Shell编程的一些关键知识点: 1. **Bash Shell 结构**: Bash Shell的脚本通常以“shebang...
本单元主要讲解如何利用Bash Shell进行命令行简化操作、命令行扩展、历史与编辑技巧,以及Gnome-terminal的使用,并介绍了Shell脚本的基础知识。 首先,命令行简化操作是提高效率的关键。通过通配符可以快速匹配和...
- 大括号扩展:可以生成任意字符串。 - `~`扩展:用于表示用户的家目录。 - 别名:允许为命令或命令行定义缩写。 - 命令历史:记录之前输入过的命令。 - 命令行编辑:支持Emacs或Vi编辑模式。 - 键盘绑定:...
**Bash Shell速查表V2 - 入门指南** ...Bash Shell的强大之处在于其灵活性和可扩展性,随着对它的深入理解,你会发现更多的高级特性,如函数、数组、变量作用域等,能够让你更好地驾驭这个强大的工具。
10. **Bash shell的高级特性**:包括shell的扩展功能,如brace expansion(花括号扩展)、process substitution和process groups。 通过学习《Bash高级编程指南》,开发者不仅能熟练地进行日常的命令行操作,还能...
Shell的强大功能很大程度上归功于其对命令行的灵活处理能力,包括但不限于花括号扩展、波浪号扩展、变量扩展、命令替换、算术表达式计算和路径扩展。掌握这些扩展和替换的机制,对于编写高效且功能丰富的Shell脚本至...
- **大括号扩展**:用于文件名的扩展。 示例: ```bash touch {a..d}.txt ``` 这将创建`a.txt b.txt c.txt d.txt`。 以上是对Shell脚本中括号使用的详细介绍,包括了小括号、中括号和大括号的各种应用场景...
8. **Shell扩展**:如 Brace Expansion(花括号扩展)、Filename Expansion(通配符扩展)、Word Splitting(单词分割)和Quote Removal(去引号)。 **Bash脚本调试和优化** 1. **错误处理**:使用`set -e`使脚本...
2. **Shell扩展**:这是Bash相较于其他shell的一大优势,包括括号扩展、波浪线扩展、参数扩展、命令替换、算术扩展、过程替换等。这些扩展极大地增强了Bash的灵活性和功能,使用户能够在脚本中执行复杂的操作。 3. *...
- 双圆括号结构可以进行算术扩展,从而执行算术运算。 7. 循环与分支 - 循环结构(如for、while)用于重复执行一段代码。 - 分支结构(如if/then)用于根据条件执行不同的代码块。 8. 算术扩展 - Shell提供了...
### Shell括号详解 #### 一、概述 Shell脚本是一种强有力的工具,它不仅能够帮助用户执行复杂的系统任务,还能实现自动化操作。在Shell脚本中,括号扮演着多种角色,包括变量处理、命令替换、流程控制以及数学运算...