shell脚本--特殊字符

shell编程基础(shell脚本学习笔记)

特殊字符


Shell中除了普通字符外,还有很多具有特殊含义和功能的字符,在使用它们时要特别注意其含义和作用。

1.通配符

通配符用于模式匹配,常见的通配符有*、?和用[]括起来的字符序列。

​ *代表任意长度的字符串,但是不包括点号和斜线号;

?可用于匹配任一单个字符;

[]代表匹配其中的任意一个字符。

**注意:[]中可以用-表明起止,比如[a-c]等同于[abc],但是要注意-字符在[]外只是一个普通字符,没有任何特殊作用;和?在[]中则变成了普通字符,没有通配的功效。


2.引号

引号包括单引号和双引号:

单引号又叫称“全引用”或“强引用”,单引号又叫称“全引用”或“强引用”。

双引号又称“部分引用”或“弱引用”,所有用双引号括起来的字符除了美元符($)、反斜线(\)、反引号(`)依然保留其特殊用途外,其余字符都作为普通字符处理。

有一点注意是单引号中间不能再出现单引号,否则会Shell无法判断到底哪里是单引号的起止位置。


3.注释符

​ Shell使用==#作为注释符==。为了增强代码的可阅读性以及有利于后期管理,要养成多写注释的习惯。所有以#开头的部分Shell解释器都会略过。

但是要注意,如果出现#后连着!,也就是“#!”不会被理解成注释,因此,其后跟着的部分必须是某个解释器的路径,而且“#!”必须出现在整个脚本的第一行。


4.大括号

(1)变量扩展

大括号{}在Shell中的用法很多,最常见的用法就是引用变量原型,又叫变量扩展。

(2)通配符扩展

​ **用于匹配多个排列组合的可能。**比如坐标,横坐标是x1、x2、x3,纵坐标是y1、y2、y3,那么所有可能的坐标就是{x1,x2,x3}{y1,y2,y3}。

[root@localhost ~]# echo {x1,x2,x3}{y1,y2,y3}
x1y1 x1y2 x1y3 x2y1 x2y2 x2y3 x3y1 x3y2 x3y3

​ **还可以用于匹配不同的文件,文件名的特征是只有其中一部分不同。**比如file_A、file_B,就可以用file_{A,B}来匹配。

[root@localhost ~]# touch file_{A,B}
[root@localhost ~]# ls file_{A,B}
file_A  file_B

(3)语句块

大括号还能用于构造语句块,语句之间使用回车隔开。使用语句块的场景一般是在自定义函数中。


5.控制字符

控制字符即Ctrl+KEY组合键一起使用,用于修改终端或文本显示。但是控制字符在脚本中不能使用,也就是说控制字符是交互式使用的。
在这里插入图片描述


6.杂项

(1)反引号

用于命令替换,和$()的作用相同,表示返回当前命令的执行结果并赋值给变量。

(2)位置参数

位置参数的含义如下。

$0:脚本名本身。

$1、$2……${10}:脚本的第一个参数、第二个参数……第十个参数。

$#:变量总数。

$*、$@:显示所有参数。

$?:前一个命令的退出的返回值。

$!:最后一个后台进程的ID号。

(3)感叹号

通常代表逻辑反,例如!=代表不等于。也可以用于执行history中某个命令,比如使用history查看到第100个命令是ifconfig,则可以用!100代表执行ifconfig。


  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhanjun.520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值