missing之bash脚本编写-4

用通配符和大括号实现的shell globbing 的便利功能

当调用脚本的时候,你可能会输入一些类似的,同质的选项。正好Bash有一些技巧可以扩展文件的后缀名,叫做shell globbing,中文我也暂时不知道怎么翻译。

  • 通配符(Wildcards ). 做通配符匹配的时候,我们可以使用?或者*。问号?只匹配一个字符,星号*可以匹配任意个字符。比如有这样几个文件:foo, foo1, foo2, foo10 以及 bar,命令rm foo?将会删除foo1和foo2,而rm foo*将会删除除了bar以外所有的文件。
  • 大括号({}). 当一些类似的命令里里有一些字符串,他们虽然不一样,但是比较类似,就可以用大括号来做一些处理。

看看下面的例子:

convert image.{png,jpg}
# Will expand to
convert image.png image.jpg

cp /path/to/project/{foo,bar,baz}.sh /newpath
# Will expand to
cp /path/to/project/foo.sh /path/to/project/bar.sh /path/to/project/baz.sh /newpath

# Globbing techniques can also be combined
mv *{.py,.sh} folder
# Will move all *.py and *.sh files
mkdir foo bar
# This creates files foo/a, foo/b, ... foo/h, bar/a, bar/b, ... bar/h
touch {foo,bar}/{a..h}
touch foo/x bar/y
# Show differences between files in foo and bar
diff <(ls foo) <(ls bar)
# Outputs
# < x
# ---
# > y

编写Bash脚本是一件非常反直觉的事情,因此有个工具shell check可以像编译器那样检查你的脚本写的是否有问题。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 教程地址 快捷键: 解释: >代表重定向输出&表示接下来的是一个文件描述符数字(file descriptor n...
    walkerwzy阅读 1,012评论 0 0
  • 参考链接: https://wangdoc.com/bash/index.html 控制多条命令的继发 命令的组合...
    yellowone阅读 725评论 0 0
  • 一、小括号,圆括号() 1、单小括号 () ①命令或命令组。括号中的命令将会新开一个子shell顺序执行,所以括号...
    健四郎阅读 744评论 0 0
  • Shell 快速指南 概述 什么是 shell Shell 是一个用 C 语言编写的程序,它是用户使用 Linux...
    静默虚空阅读 762评论 0 5
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,864评论 16 22

友情链接更多精彩内容