$test 和 “$test“ 的区别

本文探讨了shell脚本中字符串处理中的特殊字符行为,如回车符和制表符,以及在双引号和单引号中的不同对待。重点讲解了变量替换在`$test`中的使用,以及目录路径处理时`cd`命令在双引号和单引号中的差异。
摘要由CSDN通过智能技术生成

test 是个字符串,而回车符是一个不可见的特殊字符,只有在双引号中才有其本来的含义。不在双引号中,类似的特殊字符都将被shell 解释为空格,制表符 \t 也是一样,而在单引号中 $ 的变量替换功能被关闭。 

[root@master shell_learning]# seq 1 5
1
2
3
4
5

[root@master shell_learning]# test=$(seq 1 5)
[root@master shell_learning]# echo $test
1 2 3 4 5
[root@master shell_learning]# echo "$test"
1
2
3
4
5
[root@master shell_learning]# echo '$test'
$test

如果 test 恰好是一个目录,在 test 不为空的情况下,cd $test 和 cd "$test" 执行结果是一样的。但是一旦 test 为空,则执行结果就截然不同了。

[root@master shell_learning]# echo $test

[root@master shell_learning]# cd "$test"
[root@master shell_learning]# cd $test
[root@master ~]# 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值