所在位置:首页 → 电脑知识 → Linux → shell编程快速入门四:shell中特殊符号和位置符号

shell编程快速入门四:shell中特殊符号和位置符号

发布: 更新时间:2023-02-08 23:17:37

shell中特殊符号

符号作用
' '单引号。在单引号中所有的特殊符号,如“$”和”(反引号)都没有特殊含义。单引号括起来的都是普通字符,会原样输出
" "双引号。在双引号中特殊符号都没有特殊含义,但是“$”,“`”(esc键下面)和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。
` `反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和( ) 作 用 一 样 , 不 过 推 荐 使 用 (),因为反引号非常容易看错。
$()和反引号作用一样,用来引用系统命令。(推荐使用)
()用于一串命令执行时,()中的命令会在子Shell中运行
{}用于一串命令执行时,{ }中的命令会在当前Shell中执行。也可以用于变量变形与替换。
[ ]用于变量的测试。
#在Shell脚本中,#开头的行代表注释。
$用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。
\转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如$将输出“$”符号,而不当做是变量引用。

单引号和双引号

[root@localhost ~]$ name=sc
#定义变量name 的值是sc(就是最正直的人,超哥我了!)
[root@localhost ~]$ echo '$name'
$name
#如果输出时使用单引号,则$name原封不动的输出
[root@localhost ~]$ echo "$name"
sc
#如果输出时使用双引号,则会输出变量name的值 sc

[root@localhost ~]$ echo `date`
2018年10月21日星期一18:16:33 CST
#反引号括起来的命令会正常执行
[root@localhost ~]$ echo '`date`'
`date`
#但是如果反引号命令被单引号括起来,那么这个命令不会执行,―date`会被当成普通字符输出
[root@localhost ~]$ echo "`date'"
2018年10月21日星期一18:14:21 CST
#如果是双引号括起来,那么这个命令又会正常执行

反引号

[root@localhost ~]$ echo ls
ls
#如果命令不用反引号包含,命令不会执行,而是直接输出
[root@localhost ~]$ echo `ls`
anaconda-ks.cfginstall.loginstall.log.syslog sh test testfile
#只有用反引号包括命令,这个命令才会执行
[root@localhost ~]$ echo $(date)
2018年10月21日星期一18:25:09 CST
#使用$(命令)的方式也是可以的

特殊重要位置参数

位置参数作用
$0获取脚本的名称,如果全路径执行,则获取的是全路径名称
$n获取脚本的第几个参数,注意:传参的个数如果10以后要加花括号
$#获取脚本传参的总个数
$*获取传参的所有参数,如果不加双引号和$@相同;如果加双引号,获取的是一个整体
$@获取传参的所有参数,如果不加双引号和$*相同;如果加双引号,获取的是单个参数
$?获取上一条命令的执行结果,0为成功,非0失败
$$获取脚本的PID,当系统执行多个shell脚本时使用
$!获取上一个脚本的PID
$_获取上一个脚本的最后一个参数

$0、$n、$#

$*、$@

$?

$$、$!

标签:, ,
文章排行