标准输入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 ,这样不能让月份都为两位,不好看。可以这样:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)