今天学习一个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/bash

DATE=`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   :: MST
Logged in user are
Uptime is Thu Jul :: MST
:: up days, :, user, load avg: 0.13, 0.07, 0.15

最新文章

  1. visualstudio 2013 mysql entityframeword :实体模型无法添加,闪退
  2. C 一些基础
  3. MySql的常用命令
  4. hive中大表join
  5. gnuplot
  6. Java I/O流-ObjectInputStream、ObjectOutputStream
  7. 《C++ Primer》之面向对象编程(一)
  8. [PHP]接口请求校验的原理
  9. 简单的led驱动程序设计
  10. Chapter 5 Blood Type——1
  11. python之路--内置常用模块
  12. 将 LDAP 目录用于 Samba 认证
  13. Java如何从服务器获取文件大小?
  14. Python3学习之路~6.6 类的继承
  15. Swift3 倒计时按钮扩展
  16. GetLastError函数
  17. BZOJ3142 HNOI2013数列(组合数学)
  18. linux 文件检索操作
  19. 【Java】访问权限
  20. opengl剪裁空间和视口空间中不遵从右手定则,而是遵从左手定则

热门文章

  1. 利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据
  2. 1.String、StringBuffer与StringBuilder之间区别
  3. Express 框架
  4. 【jdk源码2】Objects源码学习
  5. Mac走moneky
  6. 【转】boost库之geometry
  7. 适用于 Windows 的自定义脚本扩展
  8. MySQL索引原理及慢查询优化-zz
  9. [cb]UIGrid+UIStretch的自适应
  10. Java 的布局管理器GridBagLayout的使用方法【图文说明】