描述linux shell中单引号、双引号及不加引号的简单区别

简要总结:

单引号:

可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。

双引号:

把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。

不加引号:

不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。

 

[root@oldboylinux /etc/rc3.d]#echo date
date
[root@oldboylinux /etc/rc3.d]#echo 'date'
date
[root@oldboylinux /etc/rc3.d]#echo "date"
date
[root@oldboylinux /etc/rc3.d]#echo '`date`'
`date`
[root@oldboylinux /etc/rc3.d]#echo `date`
Wed Jul 17 01:40:14 CST 2019
[root@oldboylinux /etc/rc3.d]#echo "`date`"
Wed Jul 17 01:40:20 CST 2019
[root@oldboylinux ~/test]#oldboy=teacher
[root@oldboylinux ~/test]#echo $oldboy
teacher
[root@oldboylinux ~/test]#echo '$oldboy'
$oldboy
[root@oldboylinux ~/test]#echo "$oldboy"
teacher
[root@oldboylinux ~/test]#echo '"$oldboy"'
"$oldboy"
[root@oldboylinux ~/test]#echo '`$oldboy`'
`$oldboy`
[root@oldboylinux ~/test]#echo `$oldboy`
-bash: teacher: command not found

[root@oldboylinux ~/test]#echo $oldboy
teacher
[root@oldboylinux ~/test]#cat grep.log 
teachers
oldboy
[root@oldboylinux ~/test]#grep "oldboy" grep.log 
oldboy
[root@oldboylinux ~/test]#echo $oldboy
teacher
[root@oldboylinux ~/test]#grep "$oldboy" grep.log
teachers
[root@oldboylinux ~/test]#grep '$oldboy' grep.log
[root@oldboylinux ~/test]#

[root@oldboylinux ~/test]#grep '\"' oldboy.txt 
my phone is "123456"
[root@oldboylinux ~/test]#
[root@oldboylinux ~/test]#ett=123
[root@oldboylinux ~/test]#awk 'BEGIN {print '$ett'}'
123
[root@oldboylinux ~/test]#awk 'BEGIN {print "$ett"}'
$ett
[root@oldboylinux ~/test]#ett=abc
[root@oldboylinux ~/test]#awk 'BEGIN {print "$ett"}'
$ett
[root@oldboylinux ~/test]#awk 'BEGIN {print '$ett'}'

[root@oldboylinux ~/test]#ett='abc'
[root@oldboylinux ~/test]#awk 'BEGIN {print '$ett'}'

[root@oldboylinux ~/test]#awk 'BEGIN {print "$ett"}'
$ett
[root@oldboylinux ~/test]#

文章内容来源老男孩博客https://blog.51cto.com/oldboy/791314

 

 

 

你可能感兴趣的:(描述linux shell中单引号、双引号及不加引号的简单区别)