首页 > 系统相关 >linux shell中'',""和``的区别

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

时间:2022-09-01 22:14:13浏览次数:92  
标签:bin shell 区别 单引号 双引号 echo linux dirname bash

linux shell中'',""和``的区别 - Xu Feng - 博客园  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/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

 

标签:bin,shell,区别,单引号,双引号,echo,linux,dirname,bash
From: https://www.cnblogs.com/jmbt/p/16647961.html

相关文章

  • Linux下阿里云镜像仓库
    Linux下阿里云镜像仓库阿里云镜像加速器第一步:进入apache-maven-3.6.1/conf/目录cdapache-maven-3.6.1/conf/第二步:编辑settings.xml文件添加阿里云仓库镜像vimset......
  • Linux环境安装并配置Maven
    Linux环境安装并配置Maven1.进入Maven官网复制下载地址下载mavenmaven官网:http://maven.apache.org/英文状态下:在线下载maven:wgethttps://dlcdn.apache.org/......
  • [转]CMake与Make最简单直接的区别
    写程序大体步骤为:1.用编辑器编写源代码,如.c文件。2.用编译器编译代码生成目标文件,如.o。3.用链接器连接目标代码生成可执行文件,如.exe。但如果源文件太多,一个一个编译......
  • Linux面试最高频的5个基本问题
    CPU利用率和CPU负载的区别是什么提到CPU利用率,就必须理解时间片。什么是CPU时间片?我们现在所使用的Windows、Linux、MacOS都是“多任务操作系统”,就是说他们可以“同时”......
  • Linux系统编程 —读写锁rwlock(转载~)
    读写锁是另一种实现线程间同步的方式。与互斥量类似,但读写锁将操作分为读、写两种方式,可以多个线程同时占用读模式的读写锁,这样使得读写锁具有更高的并行性。读写锁的特性......
  • Linux0.11 sleep_on wake_up函数理解和纠正
    /**将当前进程设置为不可中断的睡眠状态*只有明确进程唤醒才可以*/voidsleep_on(structtask_struct**p){structtask_struct*tmp;if(!p)......
  • Linux:按一个文件的每一行查找另一个文件
     #!/usr/bin/bashforjin`ls$1/*/*_nv.tsv`#我的目标文件是以_nv.tsv结尾的,所以将他们全列出dojj=${j##*/}jjj=${jj%_*}echo$jjj>>testnv.txt......
  • 利用shell脚本完成git自动拉取、同步
    #!/bin/bash#paras:$1dir#configsectionUSER=ShawnREMOTE_PATH="~/path/${USER}/${1}"######################functioncurrent_branch(){gitrev-parse......
  • Linux下软件安装的几种方式
    Linux的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的/usr:系统级的目录,可以理解为C:/Windows//usr/lib:理解为C:/Windows/System32/usr/bin:几乎所有的系......
  • Linux centOS 7下安装配置Tomcat
    环境:我这边使用的是3A服务器的CentOS7.9系统Tomcat下载地址:https://tomcat.apache.org/download-80.cgi安装rz工具上传安装包yum-yinstalllrzsz安装tomcat创建Tom......