字符 | 含义 |
---|---|
# | 1、通常用于注释,通常 # 前后留一个空格 2、某些模式匹配如sed,数值常量表达式(())及参数替换${var#}中也使用 |
; | 命令分割符,允许单行写多个的命令,例:echo var1;echo var2 |
;; | case 的选项结尾符 |
. | 1、等同与source命令,加载脚本文件,可理解为python的import 2、正则中匹配单个字符 3、隐藏文件的开头 |
" | 双引号引用字符串,解析变量 |
’ | 单引号引用字符串,不解析变量 |
,(逗号) | 1、多级算数运算,最后一个被返回,例:let "t2 = ((a = 9, a / 3))" 2、连接字符串,例:cp /etc/fstab{,.bak};ls /etc/{fstab,passwd} 3、参数替换,转换变量为小写,例:aa=AAA;echo ${aa,,} |
: | 空命令,等同与true命令,while :; do echo 1; done |
* | 1、通配符表示匹配任意文件名 2、正则表达式表示匹配0或多个字符 |
? | 1、通配符表示匹配文件名中单个字符 2、测试操作符,var1=100;(( var0 = var1<98?9:21 )) |
$ | 1、引用变量$var 2、正则中匹配行尾 |
() | 1、命令组,括号中命令会启动一个subshell执行,subshell变量不能传出 2、定义数组 list=(var0 var1 var2) |
{xxx,yyy,zzz,…} | 拓展表达式,用例:echo “{These,words,are,quoted}” |
{a…z} | 增强拓展表达,用例:base64_charset=( {A…Z} {a…z} {0…9} + / = ) |
{} | 1、代码块,也称为内联组,类似匿名函数,但代码块中变量对外部可见 2、文本展位符,xargs -i 默认指定 3、文件名称 find中常用 {} \; |
[] | 1、条件判断同test命令,[ -z $var ] 2、数组引用echo ${lis[1]} 3、正则范围匹配,grep [0-9] /etc/passwd |
[[]] | 增强的条件判断,比[]更灵活,是常用的条件判断表达 |
(( )) | 整数运算扩展,aa=$((a=100,a**2));echo $a $aa |
> &> >& >> < <> | 重定向符,<,>也有小于大于的表达 |
(command_list)> <(command_list) | 进程替换,以括号内多个命令的执行结果做为括号外命令的输入,例:read -a list < <( od -Ad -w24 -t u2 /dev/urandom ) |
<< | 交互式的输入重定向,例:cat >>file<<EOF |
<<< | 可从变量获取输入,例pass=“123456”;passwd --stdin root <<< $pass |
| | 管道符 |
||,&& | 或,与 |
– | 表示后面跟的参数,例:rm – -filename |
+ - * / % | 加减乘除取余 |
^ | 1、正则表示行首,例:grep ‘^root’ /etc/passwd 2、参数替换转换大写,例:var=aa;echo ${var^^} |
SHELL特殊字符
最新推荐文章于 2023-03-01 18:18:10 发布