Linux shell 单引号和双引号

  

  在编写shell脚本的时候经常会用到引号,有些时候却老是忘记单引号和双引号之间的区别,

所以就整理一下供以后脑子不好使了的时候前来复习一下。首先说下他们的共同点: 好像就只有

一个,就是它们都可以用来界定一个字符串,这个没什么好解释的,真正需要记住的是它们区别,

所以经过整理后,它们的区别主要包括:

1)、单引号属于强引用,它会忽略所有被引起来的字符的特殊处理,被引用起来的字符会被原

  封不动的使用,唯一需要注意的点是不允许引用自身;

2)、双引号属于弱引用,它会对一些被引起来的字符进行特殊处理,主要包括以下情况:

  1:$加变量名可以取变量的值 ,比如:

  [[email protected] ~]# echo ‘$PWD‘
  $PWD  

  [[email protected] ~]# echo "$PWD"

  /root

  2:反引号和$()引起来的字符会被当做命令执行后替换原来的字符,比如:

  [[email protected] ~]# echo ‘$(echo hello world)‘
  $(echo hello world)
  [[email protected] ~]# echo "$(echo hello world)"
  hello world

[[email protected] ~]# echo ‘`echo hello world`‘
`echo hello world`
[[email protected] ~]# echo "`echo hello world`"
hello world

  3:当需要使用字符($  `  "  \)时必须进行转义,也就是在前面加\ ;

[[email protected] ~]# echo ‘$ ` " \‘
$ ` " \
[[email protected] ~]# echo "\$ \` \" \\"
$ ` " \

  备注:/bin/sh -> bash,版本:4.2.46  (2016-06-21 14:21:46)

时间: 2024-11-13 03:46:54

Linux shell 单引号和双引号的相关文章

shell 单引号以及双引号

#!/bin/bash a=23 echo '$a' echo "$a" your_name='runoob' str="Hello, I know you are \"$your_name\"! \n" echo -e $str echo $str 输出 bogon:Desktop macname$ ./test.sh $a 23 Hello, I know you are "runoob"! Hello, I know y

linux bash shell中,单引号、 双引号,反引号(``)的区别及各种括号的区别

一.单引号和双引号 首先,单引号和双引号,都是为了解决中间有空格的问题. 因为空格在Linux中时作为一个很典型的分隔符,比如string1=this is astring,这样执行就会报错.为了避免这个问题,因此就产生了单引号和双引号.他们的区别在于,单引号将剥夺其中的所有字符的特殊含义,而双引号中的'$'(参数替换)和'`'(命令替换)是例外.所以,两者基本上没有什么区别,除非在内容中遇到了参数替换符$和命令替换符`. 所以下面的结果:num=3echo '$num'$numecho "$n

linux shell 单引号 双引号 反引号的区别

一.单引号和双引号 首先, 单引号和双引号,都是为了解决中间有空格的问题. 因为空格在linux中时作为一个很典型的分隔符,比如 string1=this is a string,这样执行就会报错.为了避免这个问题,因此就产生了单引号和双引号.他们的区别在于,单引号将剥夺其中的所有字符的特殊含义,而双引号中的 '$'(参数替换)和'`'(命令替换)是例外.所以,两者基本上没有什么区别,除非在内容中遇到了参数替换符$和命令替换符`. 所以下面的结果:num=3echo ‘$num’$numecho

linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)

" "(双引号)与 ' '(单引号)的区别  你在shell prompt后面敲打键盘.直到按下enter的时候,你输入的文字就是command line了,然后shell才会以进程方式执行你所提交的命令.但是,你又可知道:你在command line输入的每一个文字,对shell来说,有什么类别之分呢? 简单而言,command line的每一个charactor分为如下两种:   *literal:也就是普通纯文字,对shell来说没有特殊功能.   *meta:对shell来说,

linux shell中,单引号、 双引号,反引号(``),$()的区别

一.单引号和双引号 首先,单引号和双引号,都是为了解决中间有空格的问题. 空格在linux中时作为一个很典型的分隔符,比如 string1=this is a string,这样执行会报错.为了避免这个问题,因此就产生了单引号和双引号.他们的区别在于,单引号将剥夺其中的所有字符的特殊含义,而双引号中 的'$'(参数替换)和'`'(命令替换)是例外.所以,两者基本上没有什么区别,除非在内容中遇到了参数替换符$和命令替换符`. 看下面的例子:num=3echo ‘$num’$numecho “$nu

单引号和双引号的区别、linux快捷键、zip压缩、lrzsz、vim常见问题

Day11-12-21 怎么去记忆? 大脑: 意识 == 内存 潜意识 === 硬盘 如何将知识放到潜意识中: 1. 交流讨论 - - 说出来 睡觉前,把当天学的内容和复习的内容,以语音的形式表达出来. 微信群里说出来. 自学知识点,分享给大家. 2. 画图表达出来 本章正题:单引号和双引号的区别.linux快捷键.zip压缩.lrzsz.vim常见问题 1.1 单引号.双引号.反引号的区别: 1)单引号:单引号的内容会原封不动的先试穿了,所见即所得,吃啥吐啥 2)双引号:与单引号类似,双引号里

单引号和双引号的区别

首先, 单引号和双引号,都是为了解决中间有空格的问题. 因为空格在linux中时作为一个很典型的分隔符,比如 string1=this is a string,这样执行就会报错.为了避免这个问题,因此就产生了单引号和双引号.他们的区别在于,单引号将剥夺其中的所有字符的特殊含义,而双引号中的 '$'(参数替换)和'`'(命令替换)是例外.所以,两者基本上没有什么区别,除非在内容中遇到了参数替换符$和命令替换符`. num=3 echo '$num' echo xxxxx echo "$num&qu

php中的单引号、双引号和转义字符

PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name):最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出. 例如: <?php          $name="string";         echo  " 字符串" . '$name';         echo   "字符串" .  "$name";  ?> 结果:          字符串$name   

C语言查漏补缺——单引号和双引号

一直对于单引号和双引号有些混淆,本节讨论一下单引号和双引号的问题. 一.基本知识 1.C语言中单引号用来表示字符字面量 2.C语言中双引号用来表示字符串字面量 比如:'a'表示字符字面量,在内存中占1个字节, 'a'+1表示的是'a'的ASCII码加1,结果为'b' "a"表示字符串字面量,在内存中占2个字节,其中,第一个字节是"a",第二个字节是结束符'\0',"a"+1表示的是进行指针运算,结果指向"a"结束符'\0'.