shell脚本--特殊字符

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

文章目录

    • shell编程基础(shell脚本学习笔记)
  • 特殊字符
    • 1.通配符
    • 2.引号
    • 3.注释符
    • 4.大括号
      • (1)变量扩展
      • (2)通配符扩展
      • (3)语句块
    • 5.控制字符
    • 6.杂项
      • (1)反引号
      • (2)位置参数
      • (3)感叹号

特殊字符


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组合键一起使用,用于修改终端或文本显示。但是控制字符在脚本中不能使用,也就是说控制字符是交互式使用的。
shell脚本--特殊字符_第1张图片


6.杂项

(1)反引号

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

(2)位置参数

位置参数的含义如下。

$0:脚本名本身。

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

$#:变量总数。

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

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

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

(3)感叹号

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


你可能感兴趣的:(shell脚本,bash,linux,开发语言,shell,运维)