shell study-2day--shell特殊符号含义
井号 也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行。
如果被用在指令中,或者引号双引号括住的话,或者在倒斜线的后面,那他就变成一般符号,不具上述的特殊功能。
~ 帐户的 home 目录
代表使用者的 home 目录:cd ~;也可以直接在符号后加上某帐户的名称:cd user或者当成是路径的一部分:/bin
~+ 当前的工作目录,这个符号代表当前的工作目录,它和内建指令 pwd的作用是相同的。
~- 上次的工作目录,这个符号代表上次的工作目录。
; 分号
在 shell 中,担任连续指令功能的符号就是分号。譬如以下的例子:cd ~/backup ; mkdir startup ;cp ~/.* startup/.
;; 连续分号
专用在 case 的选项,担任 Terminator 的角色。
case “$fop” inhelp) echo “Usage: Command -help -version filename”;;version) echo “version 0.1” ;;esac
. 逗号
在 shell 中,使用者应该都清楚,一个逗号代表当前目录,两个逗号表上层目录。
如果档案名称以逗号开头,该档案就属特殊档案,用 ls 指令必须加上 -a 选项才会显示。
‘string’ 单引号
被单引号用括住的内容,将被视为单一字符串。在引号内的代表变数的$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。
“string” 双引号
被双引号用括住的内容,将被视为单一字串。它防止通配符扩展,但允许变量扩展。这点与单引数的处理方式不同。
command
倒引号
在前面的单双引号,括住的是字串,但如果该字串是一列命令列,命令将不被执行。要处理这种情况,我们得用倒单引号来做。
, 逗点
这个符号常运用在运算当中当做区隔用途。
/ 斜线
在路径表示时,代表目录。
通常单一的 / 代表 root 根目录的意思;在四则运算中,代表除法的符号。
\ 倒斜线
放在特殊符号前,则该特殊符号的作用消失;放在指令的最末端,表示指令连接下一行。
| 管道
管道符是 UNIX 系统,连结上个指令的标准输出,做为下个指令的标准输入。
! 惊叹号
通常它代表反逻辑的作用,如!= 来代表不等于
在规则表达式中她担任反逻辑的角色,例如:
ls a[!0-9]
代表显示除了a0, a1 … a9 这几个文件的其他文件。
: 冒号
在 bash 中,这是一个内建指令:什么事都不干,但返回状态值 0。
:
echo $? # 回应为 0
? 问号
在文件名扩展上扮演的角色是匹配一个任意的字元,但不包含 null 字元。
- 星号
在文件名扩展上,她用来代表任何字元,包含 null 字元。
在运算时,它则代表乘法。
** 次方运算
两个星号在运算时代表次方的意思。
$ 钱号
变量替换的代表符号。另外在正则表达式中被定义为行的最末端。
$* 引用script的执行引用变量,引用参数的算法与一般指令相同,指令本身为0,其后为1,然后依此类推。引用变量的代表方式如下:
$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, ${10}, ${11}…
个位数的,可直接使用数字,但两位数以上,则必须使用 {} 符号来括住。
$* 则是代表所有引用变量的符号。使用时,得视情况加上双引号。
echo “$*”
[email protected] 与 $* 具有相同作用的符号,不过她们两者有一个不同点。
符号 $* 将所有的引用变量视为一个整体。但符号 [email protected] 则仍旧保留每个引用变量的区段观念。
$# 这也是与引用变量相关的符号,她的作用是告诉你,引用变量的总数量是多少。
echo “$#”
$? 状态值
一般来说,UNIX(linux) 系统的进程以执行系统调用exit()来结束的。这个回传值就是status值。回传给父进程,用来检查子进程的执行状态。
一般指令程序倘若执行成功,其回传值为 0;失败为 1。
( ) 指令群组
用括号将一串连续指令括起来,这种用法对 shell 来说,称为指令群组。如下面的例子:(cd ~ ; vcgh=pwd
;echo $vcgh),指令群组有一个特性,shell会以产生 subshell来执行这组指令。因此,在其中所定义的变数,仅作用于指令群组本身。
{ } 大括号
有时候 script 当中会出现,大括号中会夹着一段或几段以"分号"做结尾的指令或变数设定。
此外,大括号还有另一种用法,如下
{xx,yy,zz,…}
这种大括号的组合,常用在字串的组合上,来看个例子
mkdir {userA,userB,userC}-{home,bin,data}
我们得到userA-home, userA-bin, userA-data, userB-home, userB-bin,userB-data, userC-home, userC-bin,userC-data.
|| 逻辑符号,代表 or 逻辑的符号。
&& 逻辑符号,代表 and 逻辑的符号。
& 后台工作
单一个& 符号,且放在完整指令列的最后端,即表示将该指令列放入后台中工作。
tar cvfz data.tar.gz data > /dev/null&
- 加号
在运算式中,它用来表示加法。
此外在规则表达式中,用来表示很多个的前面字元的意思。
- 减号 ,在运算式中,它用来表示减法。
% 除法,在运算式中,用来表示除法。
= 等号,常在设定变数时看到的符号。
== 等号 ,常在条件判断式中看到,代表等于的意思。
!= 不等于,常在条件判断式中看到,代表不等于的意思。
^ 这个符号在规则表达式中,代表行的开头位置,在[]中也与"!"(叹号)一样表示“非”
个人公众号,微信搜索:linux言叙*