linux shell中'',""和``的区别
来源:互联网 发布:java 管道通信 编辑:程序博客网 时间:2024/05/16 21:04
`` :反引号,获取执行命令的结果
打印日期:
echo `date` --》 输出 2017年12月 8日 星期五 11时59分48秒 CST
'' : 去掉 所有符号的特殊含义。
"" : 不去掉符号的特殊含义。
例如
n=3 echo '$n' --> 输出$n
n=3 echo '$n' --> 输出 3
以下内容转载自:https://www.cnblogs.com/Skyar/p/5914942.html
今天学习一个bash脚本,看到有一条:bin=`dirname "$0"`
(dirname filename是输出该文件所在的目录,$0是该bash文件的文件名,在bash中一般使用cd `dirname $0`进入该脚本所在的目录中)
我尝试着cat $bin
输出是:.
然后我将反引号``去掉:bin=dirname "$0"
在运行cat $bin后报错。
网上查了一些bash的单引号'',双引号""和反引号``的区别。
单引号''和双引号""
两者都是解决变量中间有空格的问题。
在bash中“空格”是一种很特殊的字符,比如在bash中这样定义str=this is String,这样就会报错,为了避免出错就得使用单引号''和双引号""。
单引号'',双引号""的区别是单引号''剥夺了所有字符的特殊含义,单引号''内就变成了单纯的字符。双引号""则对于双引号""内的参数替换($)和命令替换(``)是个例外。
比如说 n=3
echo '$n'
结果就是n3
改成双引号 echo "$n",结果就是3
反引号``
反引号``是命令替换,命令替换是指Shell可以先执行``中的命令,将输出结果暂时保存,在适当的地方输出。语法:`command`
下面的例子中,将命令执行结果保存在变量中:
#!/bin/bashDATE=`date`echo "Date is $DATE"USERS=`who | wc -l`echo "Logged in user are $USERS"UP=`date ; uptime`echo "Uptime is $UP"
运行结果:
Date is Thu Jul 2 03:59:57 MST 2009Logged in user are 1Uptime is Thu Jul 2 03:59:57 MST 200903:59:57 up 20 days, 14:03, 1 user, load avg: 0.13, 0.07, 0.15
- [Linux]: shell中[]和[[]]的区别
- linux shell中'',""和``的区别
- linux:Shell中exec、source和shell script的区别
- linux:Shell中exec、source和shell script的区别
- linux shell中 "" '' ``的区别
- Linux shell中su 和 su - 的区别
- Linux shell中su 和 su - 的区别2
- Linux-SHELL中sh和bash的区别
- Linux-SHELL中sh和bash的区别
- Linux shell中,单引号''、双引号""和反引号``的区别
- shell中$@和$*的区别
- shell中“>”和“>>”的区别
- linux shell 中[ ]和[[ ]]表达式区别:
- Linux bash shell中. & source & ./的区别
- Linux—shell中$(( ))、$( )、``与${ }的区别
- Linux Bash Shell $*和$@的区别
- linux shell脚本中的``和$()的区别
- shell中$@和$*区别
- tslib-1.4的安装与移植
- 缩略语列表
- ELDD读书笔记:第十章 PCI
- 正确使用Github 的方法 + Git 和 GitHub 教程和技巧
- 一次通过bbed工具恢复ORACLE EBS 数据库的过程
- linux shell中'',""和``的区别
- 《Apache Flume教程》第三章 Flume是如何组成的?
- okhttp的请求+上传文件
- 关于jquery中 的点击事件,每点一次执行的效果就叠加一次,click是添加点击事件的意思
- 使用mybatis分页插件PageHelper5.1.2遇到的问题
- 怎样用django创建项目和应用
- Django系列教程(2)-- 模型的创建
- IntelliJ IDEA(2017)最新版安装和破解
- 事务管理概述