Shell字符串

字符串是Shell中非常重要的部分,是最常用的数据类型之一,字符串有由单引号包围、由双引号包围和不使用引号三种表示形式。三种表示形式在变量解析、引号转义、空格、分号四个方面有所区别。

变量解析

1.单引号包围的字符串不解析任何变量,在其中使用的任何变量都是无效的,会原样输出。

2.双引号包围的字符串会解析遇到的变量,输出变量的值,而不是原样输出。

3.不使用引号的字符串也会解析遇到的变量。

引号转义

1.单引号包围的字符串不可以包含单引号,即使对单引号进行转义也不行。

2.双引号包围的字符串可以包含单引号,也可以包含双引号,包含双引号时需要使用“\”对双引号进行转义,单引号则不需要。

3.不使用引号的字符串可以包含单引号,也可以包含双引号,但是必须使用“\”对引号进行转义。

空格

1.单引号包围的字符串可以包含空格。

2.双引号包围的字符串可以包含空格。

3.不使用引号的字符串可以包含空格,但必须使用“\”对空格进行转义,否则空格后的内容会作为其他指令进行解析。

分号

1.单引号包围的字符串可以包含分号。

2.双引号包围的字符串可以包含分号。

3.不使用引号的字符串可以包含分号,但必须使用“\”对分号进行转义,否则分号后的内容会作为其他指令进行解析。

总结

三种形式的区别总结如下:

 单引号包围双引号包围不用引号包围
变量解析
单引号(需转义)
双引号(需转义)(需转义)
空格(需转义)
分号(需转义)

 简单示例

num=123
str1=show\ \"num\":\ $num\;; str2='show "num": $num;'
str3="show \"num\": $num;"
echo $str1
echo $str2
echo $str3

 以上输出结果为:

show "num": 123;
show "num": $num;
show "num": 123;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值