【linux】Shell 单引号'' 双引号"" 反引号`` 和$()的区别和用法
发行版为 red hat 以及centos,其他发行版未经验证
部分段落摘抄自网络,侵删
转载请注明出处
感谢点赞
单引号''和双引号"” 两者都是解决变量中间有空格的问题。
在bash中“空格”是一种很特殊的字符,比如在bash中这样定义str=this is String,这样就会报错,为了避免出错就得使用单引号''和双引号""。
单引号'',双引号""的区别是单引号''剥夺了所有字符的特殊含义,单引号''内就变成了单纯的字符。双引号""则对于双引号""内的参数替换($)和命令替换(``)是个例外。
比如说
n=3
echo '$n'
结果就是$n,因为所有字符均被当做普通字符处理
改成双引号 echo "$n",结果就是3

`` 学名叫“倒引号”或者“反引号”, 如果被“倒引号”括起来, 表示里面需要执行的是命令。Shell可以先执行``中的命令,将输出结果暂时保存,在适当的地方输出。
比如 `dirname $0`, 就表示需要执行 dirname $0 这个命令。
下面的例子中,将命令执行结果保存在变量中:
#!/bin/bash
DATE=`date`
echo "Date is $DATE"
echo "-----------------------------"
USERS=`who | wc -l`
echo "Logged in user are $USERS"
echo "-----------------------------"