必威体育Betway必威体育官网
当前位置:首页 > IT技术

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

时间:2019-10-11 23:14:49来源:IT技术作者:seo实验室小编阅读:89次「手机版」
 

``

今天学习一个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  2 03:59:57 MST 2009
Logged in user are 1
Uptime is Thu Jul  2 03:59:57 MST 2009
03:59:57 up 20 days, 14:03,  1 user,  load avg: 0.13, 0.07, 0.15

相关阅读

mysql中tinyint(1)与tinyint(2)的区别

tinyint 型的字段如果设置为UNSIGNED类型,只能存储从0到255的整数,不能用来储存负数。tinyint 型的字段如果不设置UNSIGNED类型,存

[JavaEE] JPA中的Primary Key的几种生成方式

本文发表在https://softwarecave.org/2014/08/02/primary-key-generators-in-jpa/,详实、易懂的介绍了JPA 的Key Generator Gen

“暴力”破解 Linux密码

1.首先我们需要一个“字典”,换而言之,就是密码库,可以用来破解Linux用户的密码 2.接下来,我用一个脚本来给大家简单的写一下 #!/usr/

java中Executor框架之ThreadPoolExcutor和ScheduledTh

转载自: https://blog.csdn.net/javazejian/article/details/50890554 java多线程-概念&创建启动&中断&守护线程&

有什么办法可以在微博时间表中关闭促销广告

强行推广微博很烦人。是不是每个人都熟悉微博3专栏的新版本?公职人员提供的五个盾牌是不够的,我不想支付会费。 “别担心,看一

分享到:

栏目导航

推荐阅读

热门阅读