shell脚本学习笔记(二、shell中的扩展介绍)

查看历史命令

可以用history命令来查看用户在命令行输入执行的命令列表(默认显示前1000条,可以通过环境变量来设置),在查看历史命令的过程中可以用快捷键Ctrl+R 来通过关键字来对命令列表进行过滤。

快速执行上一条命令

可以用!!来执行是上一次执行过的命令。

Shell 中的扩展

大括号扩展:大括号括号扩展是一种能够生成任意字符串序列的机制,其语法是有一个可选的钱缀和一个可选的后缀,中间是一组用大括号包裹用逗号分隔的字符串,例如

echo a{a,b,c} a

输出的结果为

aaa

aba

aca

echo {a..z} #输出a到z的所有字母a b c .... z

echo {0..10} #输出0到10的所有数字 0 1 3 .. 10

echo {a...c}{1...3}

波浪号扩展:大波浪号扩展,可以用来指代自己的主目录,或其他人的组目录

cd ~ # 进入自己的主目录

cd ~XX # 进入XX的主目录

命令替换:用命令的输出替换命令本身,主要有下面这两种形式

$(COMMAND)

CPMMAND

bash 进行这个扩展的时候,先执行命令,然后用命令标准输出结果来取代命令

文件名扩展:如果shell没有设置-f选项,就支持文件名扩展,主要以下面三中统配符实现

* 匹配任意的字符串

?匹配任意单个字符串

[...]匹配方括号中任意的字符

例如显示etc 下所有的配置文件

ls /etc/*.conf

#和%扩展

这种扩展只可以扩展参数值得一部分,用来指定的模式移除参数值中字符移除指定的一部分,“#”和“%”表示移除匹配字符串的最短字符串,“#”从字符串的开头开始匹配,“%”从字符串的末尾开始匹配。而扩展字符“##”和“%%”移除匹配到的最长字符串。

例如:

执行的结果如下:

字符长度扩展

此扩展可以用来得到参数值字符串的长度值,如下:

fileName="hello worad"

echo ${#fileName}

子字符串扩展

语法:${参数}

经验分享 程序员 微信小程序 职场和发展