Linux 反引号、单引号、双引号简析

2023-11-13




一、引号的作用


1、 将多个因为空格或者回车等分隔符隔开的字符串合在一起,避免被命令行解析分开;
例如 “a b c” 是一个字符串,而不会像 a b c 这样会被解析成三个单独的字符串。

2、让一些特殊符号保持原义。




二、反引号 ``


反引号 ` 这个字符所对应的键一般位于键盘的左上角, 和单引号 ’ 是有区别的。

反引号括起来的字符串会被 shell 解释为命令行,
在执行时,shell 首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。


虽然反引号 `cmd` 和 $(cmd) 变量替换的效果是一样的,但是使用上还是有一些区别的,
具体可戳 《 Linux 反引号 `cmd` 和 $(cmd) 的区别 》 了解。




三、单引号 ‘’


由单引号括起来的所有字符都作为普通字符出现。
即使是特殊字符,用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。

例如'$a' 不会被展开做变更替换, ‘cmd’ 也不会执行其中的 cmd 命令;




四、双引号 “”


由双引号括起来的字符,除 $、反引号 (`) 和反斜杠(\)仍保留其特殊功能外,其余字符均作为普通字符对待:

$  :      用于变量替换
反引号` :  用于命令替换
反斜杠\ :  用于转义

需要注意的是,反斜杠 \ 的转义能力是有限的,仅当 \ 后面的字符是下述字符之一时, \ 才是转义字符:

$
`

\
newline换行符(回车)

转义字符告诉 Shell 不要对其后面的那个字符进行特殊处理,只是当作普通字符。




五、引号解释顺序


对于 bash 来说,命令的解释是 从左到右 的;
因此 先遇到单引号 或者 先遇到双引号,解释效果是不一样的;

举个例子:

$ a=1

$ echo "'$a'"
'1'              # 单引号失效

$ echo  '"$a"'
"$a"           # 双引号失效
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 反引号、单引号、双引号简析 的相关文章

  • C程序调用shell脚本

    我有一个小型 C 程序 调用 shell 脚本 myScript sh 我得到的 ret 值为 256 请帮助我了解系统调用出了什么问题 int main int ret ret system myScript sh ret gt gt r
  • 如何在 shell 脚本中操作 $PATH 元素?

    有没有一种惯用的方法从类似 PATH 的 shell 变量中删除元素 这就是我想要的 PATH home joe bin usr local bin usr bin bin path to app bin and remove or rep
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • sendfile64 只复制约2GB

    我需要使用 sendfile64 复制大约 16GB 的文件 到目前为止我所取得的成就是 include
  • 在哪里可以找到并安装 pygame 的依赖项?

    我对 Linux 比较陌生 正在尝试安装 python 的 pygame 开发环境 当我运行 setup py 时 它说我需要安装以下依赖项 我找到并安装了其中之一 SDL 然而 其他人则更加难以捉摸 Hunting dependencie
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 有没有办法让我简化这些回声? [复制]

    这个问题在这里已经有答案了 我仍在学习如何编写 shell 脚本 并且我面临着一个挑战 让我更容易回显 Name1 Name2 Name15 我不太确定从哪里开始 我已经想法 但如果我搞砸了 我不想看起来很傻 有什么帮助吗 我实际上还没有尝
  • nslookup 报告“无法解析 '(null)': 名称无法解析”,尽管它成功解析了 DNS 名称

    我在 ubuntu 上 并且正在运行 docker 默认桥接网络 我有 Zookeeper kafka 的容器化版本 以及我编写的与 kafka 对话的应用程序 I do a docker exec it
  • OSX bash 最小化窗口

    在 Mac 中并使用 bash shell 我想执行一个包含单个命令 启动 Jupyter Lab 的文件并立即最小化终端窗口 有没有办法在不安装第三方软件的情况下做到这一点 是的 只需使用osascript https ss64 com
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • 如何查看正在运行的 tcsh 版本?

    如何查看我的 UNIX 终端中运行的 tcsh 的当前版本 看着那 这version多变的 echo version tcsh 6 14 00 Astron 2005 03 25 i386 intel linux options wide
  • 有谁知道在哪里定义硬件、版本和序列号。 /proc/cpuinfo 的字段?

    我想确保我的 proc cpuinfo 是准确的 目前它输出 Hardware am335xevm Revision 0000 Serial 0000000000000000 我可以在代码中的哪里更改它以给出实际值 这取决于 Linux 的
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • 使用 awk 读取文件并搜索另一个文件

    我正在读取一个文件 每行都有数字 我需要搜索另一个满足这些数字和其他条件的文件 我正在尝试使用 awk 来做到这一点 但遇到了问题 File a txt 1476 1477 1497 现在我需要打印第 12 列包含这些数字的行以及第 3 列
  • 为什么我可以直接从 bash 执行 JAR?

    我是一个长期从事 Java 工作的人 并且知道运行带有主类的 JAR 的方法MANIFEST MFJar 中的文件很简单 java jar theJar jar 我用它来启动 Fabric3 服务器 包含在bin server jar在其标
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do

随机推荐

  • shell编程基础: menu drvien script template(菜单脚本模板)

    前言 菜单类脚本 其实就是我们经常使用的交互脚本 在我们安装一个app的时候最常见 我们需要使用交互脚本进行一些配置 在工作中 写一个交互性脚本也同样重要 比如我现在需要写一个数据库授权的脚本 上下文是这样的 我们在开发中都是使用docke
  • LCD和LED屏幕的工作原理总结

    1 点阵取模原理之横向取模与纵向取模 1 1 针式打印机 针式打印机16针是纵向排列 每次打印垂直的16bit 然后右移一bit 继续下列打印 字节的MSB表示最上面的点 字节LSB表示最下面的点 由于汉字字模的点阵是横向排列的 而提供给打
  • 实现单层神经网络

    在前面 我们分别使用逻辑回归和 softmax 回归实现了对鸢尾花数据集的分类 逻辑回归能够实现线性二分类的任务 他其实就是最简单的神经网络 感知机 而softmax回归则实现的是多分类任务 它也可以看做是输出层有多个神经元的单层神经网络
  • Flink之IntervalJoin介绍

    InterValJoin算子 间隔流 一条流去join另一条流去过去一段时间内的数据 该算子将keyedStream与keyedStream转化为DataStream 再给定的时间边界内 默认包含边界 相当于一个窗口 按指定的key对俩个K
  • (ESP32学习13)驱动TFTLCD(SPI接口)

    本篇博文教大家ESP32 驱动TFT SPI驱动 本文给大家的库直接适用于2寸 240 320 的SPI TFT 但实际上这种驱动移植适用于所有的SPI驱动的TFT屏幕 底层代码把LCD初始化里面的寄存器参数改一改就适用了 这些寄存器参数在
  • 基于STM32F103循迹小车

    本人小白一个 利用暑假时间在家做一些小东西 我这次想要跟大家分享的是基于STM32F103的循迹小车的制作 两个轮子 主要硬件 板子 L298N 电机 4个循迹模块等 话不多说 先上干货 XJ c include XJ h 循迹文件 inc
  • KEIL下载报错——TRACE HW not present

    使用st link调试遇到烧写完成之后不能进入调试状态 提示TRACE HW not present 点击确认 提示错误 Erron target DLL has been cancelled Debugger aborted 解决办法 第
  • 何在python里面用tkinter模块做一个GUI界面,实现button点击之后弹出新页面,新页面是一些文字内容

    首先弹出新页面需要用到callback函数 代码编写如下 import scapy from tkinter import root tk Tk root wm geometry 600x400 root title tk def call
  • ShinyApp中的表格:第三天笔记

    shiny中的表格 除了在shinyapp中生成图片 有时还需要生成表格 用于查看数据 以及保存下载 表格分为两类 动态和静态 静态的表格更有利于打印和输出pdf 而动态的表格提供了更多的交互式选项 还会响应屏幕的大小来进行缩放 静态表格
  • 从材质到外观(待续)

    很多地方都只有材质 然后shader中 最终肯定是到片元着色器 也就是appearance 后处理是单独的poststage var appearance new Ceisum MaterialAppearance Cesium Mater
  • 一次ORA-39083,ORA-01917的问题解决过程

    一次ORA 39083 ORA 01917的问题解决过程 今天到导数据的时候遇到了一个问题 也不知道有没有其他小伙伴也遇到过 按照要求导出一个用户下指定表的部分数据 此时使用了expdp的tables参数指定要导出的表这里我导出的是BKG
  • hdu 6311 Cover

    无向图的最小路径覆盖 找出联通块里所有的奇度点 然后两个两个的点互相连边 构造成所有点都是偶度数 然后就找联通块里有多少条欧拉回路 如果回路中有新加的边则答案 include
  • 分析结果循环写入csv

    30户的暖气的分析结果复制粘贴下来发给队友 好像是有点多了一个对话框都过不去 被嫌弃了 你就不能给我打包个excel 好吧 import csv with open result csv w as csvfile writer csv wr
  • Docker 安装运行 ElasticSearch 遇到的问题!

    在创建 6 4 3版本的 ES 以后启动发现过了一会 ES 自动退出了 原因好像是 ES 的默认分配的内存太大了 进程被自动杀死了 所以以下我来记录下这坑 使用ES工具类索引时运行测试方法时报错 org elasticsearch tran
  • 【linux--------基础Apache配置】

    这里写目录标题 关于Apache介绍 部署简单的Apache静态网站 常见问题 关于Apache介绍 Apache是一个开源的Web服务器软件 它是世界上最流行的Web服务器之一 Apache的全称为Apache HTTP Server 它
  • cublas 实战

    导言 搞了一段时间的CUDA程序 虽然也不是写不出复杂程序 但是写个矩阵乘法都要搞个半天 还要担心各种性能瓶颈 不过 还好有cublas 实现了非常多的数学运算 这下子可以好好利用一番 以后再也不用担心自己写的CUDA效率不高了 入门 cu
  • 查看ssh端口号_更改centos系统ssh连接端口号

    由于本人平时爱折腾 之前趁着阿里云和腾讯云搞活动期间分别搞了台服务器 刚开始的时候 服务器的防护措施没有做好 陆陆续续服务器被黑了好几次 最惨的一次是搭建的知识库的服务器被黑 导致所有的数据丢失 黑客在服务器留言需要0 25个比特币赎回数据
  • 记2016.10.15百度面试经历,软件研发工程师

    9月参加的网上笔试 选择主要做了一些行测的题 头一次做行测题 后面有三道编程题 做出来一道 卡在第二道了50 感觉自己水水的 百度也一直没通知面试 以为被刷了就没抱什么希望 后来13号竟然发来了面试通知还是有点小激动 要求9 00 并且提前
  • Quartz.NET简明示例

    下面是一个 Quartz NET 的简单例子 初始化调度器工厂 ISchedulerFactory sf new StdSchedulerFactory 获取默认调度器 IScheduler scheduler sf GetSchedule
  • Linux 反引号、单引号、双引号简析

    文章目录 一 引号的作用 二 反引号 三 单引号 四 双引号 五 引号解释顺序 一 引号的作用 1 将多个因为空格或者回车等分隔符隔开的字符串合在一起 避免被命令行解析分开 例如 a b c 是一个字符串 而不会像 a b c 这样会被解析