linux 中括号

linux 中括号,第1张

Linux中,lsmod(list modules)是显示已载入系统的模块。

标准输入stdin,标准输出stdout和标准错误stderr,三个系统文件的文件描述符分别为0,1和2。这里2>&1的意思就是将标准错误也输出到标准输出当中。

所以这是告诉你出错了,找不到老的lsmod。

有些小伙伴经常在SHELL脚本中看到某些特殊的取值或者赋值方式,比如${}连起来用的含义

那么我们直接上答案: 替换/截取

假设我们定义一个变量:

我们获取fileName的值使用 :

替换其中的tempDir1为tempDir3,我们可以使用命令:

结果

替换全部的Dir为Path

结果

#, ##, %,%%的作用

#符号A,##符号A,%符号A,%%符号A

为什么#是取左边的,%是取右边的呢?

看我们键盘的布局:

数字键 3 4 5 分别对应 # $ % ,

#和% 正好位于取值符号$的左右两边,你知道了么。。。。。。

常见用法:

加入我们调用一个脚本,入参有多个,

括号扩展可以让我们按照花括号里的模式创建一连串字符串。

例如:

可以看到打印了:

由于默认模式下,不能忽略空格,这里使用 _ 代替空格。

这里的开头部分 Love_ 被称为 前导字符(preamble ),结尾部分 _Forever 被称为 附言(postscript)

我们还可以按顺序输出设定范围内的字母或者数字,例如:

终端里将打印出:

打印字母的时候有点 特殊问题 ,我们先来看下面按序输出大写的A到Z的字母:

再来看全是小写字母a到z:

目前为止都很正常,但是我们输入:

这时候打印出的是:

可以看到先输出全部大写字母,然后出现一堆符号,然后再全部小写字母。很奇怪对吧,等会再解释为什么这样,我们再来看输入:

这时候返回的是:

更加奇怪了是不是,这是为什么呢?

我们来看一个东西,ASCII码表:

这时候我们看65号的A到122号的z之间,除了大小写字母之外,是不是出现了那堆奇怪的符号。这是因为花括号扩展的顺序是按照ASCII码表的顺序输出的。

这时候我们也就可以理解 echo {a..Z} 为什么会返回那段字符串了,因为在ASCII码表中其实是倒序的。

不过经过测试可以发现,由于其他符号有已经被赋予特殊含义,就只有大小写字母之间会出现这个问题。需要在使用中注意哦!

花括号扩展支持嵌套,例如:

花括号扩展普遍应用于创建一系列文件或者目录,这时候就可能需要按照时间来命名,手动输入一个个输入太麻烦了,这时候也可以使用花括号扩展,如下:

可以看到 01 自动变成 1 ,这样不能让月份都为两位,不好看。可以这样:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6075429.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-13
下一篇 2023-03-13

发表评论

登录后才能评论

评论列表(0条)

保存