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

一、单引号和双引号

首先,单引号和双引号,都是为了解决中间有空格的问题。

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

看下面的例子:
num=3
echo ‘$num’
$num
echo “$num”
3
如果需要在双引号””里面使用这两种符号,需要用反斜杠转义。

二、反引号``

这个东西的用法,我百度了一下,和$()是一样的。在执行一条命令时,会先将其中的 ``,或者是$() 中的语句当作命令执行一遍,再将结果加入到原命令中重新执行,例如:
echo `ls`
会先执行 ls 得到xx.sh等,再替换原命令为:
echo xx.sh
最后执行结果为
xx.sh
那么,平时我们遇到的把一堆命令的执行结果输出到一个变量中,需要用这个命令替换符括起来,也就可以理解了。
这里又涉及到了一个问题,虽然不少系统工程师在使用替换功能时,喜欢使用反引号将命令括起来。但是根据POSIX规范,要求系统工程师采用的是$(命令)的形式。所以,我们最好还是遵循这个规范,少用``,多用$()

小龙博客

http://zhangzhiqiangli.blog.163.com/blog/static/459183842013829113850887/

时间: 2024-09-27 06:02:17

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

Linux Shell中反引号``, 单引号'', 双引号"", $混用总结

用一个小程序(argv.py)来演示下: #!/usr/local/bin/python3 import sys print('sys.argv has these', len(sys.argv), 'elements:', sys.argv) 运行与结果: # 首先是赋予执行权限 chmod 755 argv.py #1 一个空格一个命令行参数 ./argv.py I love Shell scripting. sys.argv has these 5 elements: ['./argv.p

Linux中的元字符和转义符 单引号 硬引号 双引号 软引号

Linux中的元字符和转义符  单引号  硬引号  双引号  软引号 Linux就这个范儿 Linux就这个范儿 P182单引号:硬引号,所有元字符特殊意义都会关掉双引号:软引号,只允许出现特定元字符,对特殊字符会进行解析 元字符

公式中表达单个双引号【"】和空值【""】的方法及说明

http://club.excelhome.net/thread-661904-1-1.html 有人问为什么不用三个双引号"""来表示单个双引号["]呢,如果用三个双引号来表示的话,也就是""",那么Excel会很困惑,因为你给她出了一道难题,这个"""是"""呢还是"""呢还是"""呢? Excel中的一个双引号[

js中 单引号 双引号 参数问题 单引号 替换成 \' 双引号 替换成 \" 等

.replace(/\'/g, "\\'")    ->  ' 替换成  \' .replace(/\"/g, "\\\"")  ->  " 替换成\" 注:适用于 onclick='Test("数字双音\"")'  这种写法 .replace(/\"/g, """)  ->" 替换成 " 注:适用于onclick=&q

linux shell中'',""和``的区别

今天学习一个bash脚本,看到有一条:bin=`dirname "$0"` (dirname filename是输出该文件所在的目录,$0是该bash文件的文件名,在bash中一般使用cd `dirname $0`进入该脚本所在的目录中) 我尝试着cat $bin 输出是:. 然后我将反引号``去掉:bin=dirname "$0" 在运行cat $bin后报错. 网上查了一些bash的单引号'',双引号""和反引号``的区别. 单引号''和双引

Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2        ;; *) 默认执行的命令序列     ;; esac Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)_linux shell_脚本之家 在Linux Shell中有很多的特殊符号,这对于我们写Shell脚本时要特别留意:一方面要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果:但另一方面要避免这些

常见Linux Shell中的特殊符号含义

在Shell的实际使用中,有编程经验的很容易上手,但稍微有难度的是shell里面的那些个符号,各种特殊的符号在我们编写Shell脚本的时候如果能够用的好,往往能给我们起到事半功倍的效果,下面就罗列一些常见的特殊符号. # 井号 如#!/bin/bash井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行.# This line is comments.echo "a = $a" # a = 0由于这个特性,当临时不想执行某行指令时,只需在该行开头

Linux Shell中‘$‘符号的N种用法

在Shell中$是一个特殊的字符,在不同场景中有不同的用法. 引用变量 使用$直接引用变量,包括循环变量. 123 [email protected]:~# x=1[email protected]:~# echo $x1 双引号"括起来的字符串支持变量插值. 123 [email protected]:~# x=1[email protected]:~# echo "x = $x"x = 1 使用${}作为单词边界. 123 [email protected]:/var/l

linux shell中的比较符号与特殊符号介绍

shell字符串比较.判断是否为数字  二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别.  整数比较  -eq 等于,如:if [ "$a" -eq "$b" ]  -ne  不等于,如:if [ "$a" -ne "$b" ]  -gt 大于,如:if [ "$a" -gt "$b" ]  -ge 大于等于,如:if [  "$a" -ge "

JS中单引号/双引号以及外部js引入的一些问题

一.单引号和双引号的用法的问题 在JavaScript中可以使用单引号.双引号,二者也可以混合使用.但是,身为菜鸟的我,却碰到了一些引号的使用问题. <body> <div style="border:1px solid red; height:150px;width:150px;" onclick="alert("test");" id="test">This is a test. </div&