三、我也来抄shell之ABS--引用

注:为了加深自己的影响,所以抄了一边,具体请看ABS_Guide_cn.pdf
5.1 引用变量
在一个双引号中直接使用变量名,一般都是没有问题的.它阻止了所有在引号中的特殊字符的重新解释--包括变量名[2]--但是$,`和\除外.[3]保留$,作为特殊字符的意义,是为了能够在双引号中也能够正常地引用变量("$var").这样在""中可以使用变量所表达的值.使用""来防止单词分割.[4]如果在参数列表中使用双引号,将使得双引号中的参数作为一个参数.即使双引号中的字符串包含多个单词(也就是包含空白部分),也不会变为多个参数.
variable2=""                        # 空值
COMMAND $variable2 $variable2 $variable2         # COMMAND 将不带参数执行
COMMAND "$variable2" "$variable2" "$variable2"         # COMMAND 将以 3 个空参数来执行
COMMAND "$variable2 $variable2 $variable2"        # COMMAND 将以 1 个参数来执行(2 空
单引号操作总体上和""很像,但不允许引用变量.因为$的特殊含义被关闭了.在''中除了',其他字符都没有特殊的含义了.所以单引号比双引号严格.因为即使是\,在''中都被关闭了,所以你想在''中显示'的含义,将得不到预期的效果.
5.2 转义(\)
转义是一种引用单个字符的方法.一个具有特殊含义的字符前边放上一个转义符(\)就告诉 shell这个字符失去了特殊的含义.值得注意的是,在某些特定的命令和工具中,比如 echo 和 sed,转义符往往会起到相反的效果,它反倒有可能引发出这个字符特殊的含义.对于特定的转义符的特殊的含义在 echo 和 sed 中所使用的
\n              意味着新的一行
\r              回车
\t              tab 键
\v              vertical tab(垂直 tab),查前边的 Ctl-K
\b              backspace,查前边的 Ctl-H
\a              "alert"(如 beep 或 flash)
\0xx            转换成 8 进制 ASCII 解码,等价于 oxx
\"              表达引号本身
\$              $号本身,跟在\$后的变量名,将不能扩展
\\              \号本身
分配给变量的字符串的元素也会被转义,但是只把一个转义符分配给变量将会报错.例如:
 variable=\ ; echo "$variable"
转义一个空格,在命令行参数列表中将会阻止单词分隔问题.
转义符也提供续行功能.一般,每一行都包含一个不同的命令,但如果在行尾加上\,那就会接受新行的输入,作为这一行的补充.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值