Linux shell脚本变量单引号和双引号的区别以及变量扩展问题

/ Linux / 没有评论 / 1477浏览

Linux shell脚本变量单引号和双引号的区别以及变量扩展问题

单引号可以防止任何变量扩展。双引号可以防止通配符扩展但它允许变量扩展。

shellrun.sh

#!/bin/sh
#测试单引号‘’  双引号“”的区别
#单引号更严格一些。它可以防止任何变量扩展。双引号可以防止通配符扩展但允许变量扩展。
echo $SHELL
echo "$SHELL"
echo '$SHELL'

结果:

yanzuoguang@yanzuoguang-linux-1:~$ ./shellrun.sh 
/bin/bash
/bin/bash
$SHELL

一种防止这种扩展的方法,那就是使用转义字符——反斜杆

shellrun1.sh

#!/bin/sh
#测试单引号‘’  双引号“”的区别
#单引号更严格一些。它可以防止任何变量扩展。双引号可以防止通配符扩展但允许变量扩展。
#一种防止这种扩展的方法,那就是使用转义字符——反斜杆
echo \$SHELL
echo "\$SHELL"
echo '$SHELL'

结果:

yanzuoguang@yanzuoguang-linux-1:~$ ./shellrun1.sh 
$SHELL
$SHELL
$SHELL