shell中单引号、双引号、反引号的用法及区别

2023-11-06

单引号

这个比较暴力,不管单引号里面有什么都原样输出,无视一切变量,所见即所得。如果要用来做字符比较和输出,注意不能输出变量,也不认识通配符,命令等。

even@ubuntu:~$ echo 'a$PATH --aa\*'
a$PATH --aa\*

双引号

双引号感觉就相对友好,如果内容中有变量、特殊转义符等,会先把变量、转义字符解析出结果,然后再输出最终内容。

even@ubuntu:~$ echo "a$PATH --aa\\*"
a/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ffmpeg/bin --aa\*

双引号里面也可以有命令,但要用反引号引一下,比如下面这样

even@ubuntu:~/test$ echo "`ls -l` a$PATH --aa\\*"
total 268
-rw-r--r-- 1 even even 259626 Oct 30 10:40 693fnet.log
-rw-r--r-- 1 even even    837 Aug 21 15:47 check4gnet.sh
drwxrwxr-x 2 even even   4096 Dec 12 03:09 python
drwxrwxr-x 3 even even   4096 Oct 12 16:58 wifidetect-openwrt a/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ffmpeg/bin --aa\*
even@ubuntu:~/test$ 

双引号中只有$ \ ` 不被忽略 其他的都会被忽略,比如*和?通配符。这个在做比较和运算的时候要特别注意。比如:

a="123"
b="12345"
if [[ $b == "$a*" ]]

这里结果就是false。

反引号

一般用于命令引用,命令的执行。
反引号是相对古老一点的用法,现在多用$()来执行命令。

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

shell中单引号、双引号、反引号的用法及区别 的相关文章

  • adb shell:无法使用 ESCAPE 键

    I want to use vi when running adb shell Starting vi is easy However I found that the ESC key doesn t seem to get through
  • 如何在 Makefile 中定义全局 shell 函数?

    我想定义一个shell函数 bin sh test do some complicated tests 1 2 if something then build thisway 1 2 else build otherway 1 2 fi 这
  • 无需 root 访问权限即可安装 zsh? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有可能 以及如何 我确实需要在几台具有 ssh 访问权限 但没有 root 访问权限 的远程计算机上使用此功能 下载 zsh wget O zsh t
  • Bash - 比较 2 个文件列表及其 md5 校验和

    我有 2 个列表 其中包含带有 md5sum 检查的文件 即使文件相同 列表也具有不同的路径 我想检查每个文件的 md5 和 我们正在讨论数千个文件 这就是为什么我需要脚本来仅显示差异 第一个列表是普通列表 第二个列表是文件的当前状态 我想
  • adb shell 输入带有空格的文本

    如何发送带有空格的文本 例如 一些文字 using adb shell input text 找到以下解决方案 adb shell input text some stext 工作正常 但是有什么简单的方法可以用 s 替换空格吗 Examp
  • sed 和 rev shell 命令转换为 Python 脚本 [重复]

    这个问题在这里已经有答案了 有一个shell命令 我正在尝试将逻辑转换为python 但我不知道该怎么办 我需要一些帮助 shell命令是这样的 cd tests src main test ls find name vrlp while
  • 如何在 Bash 中删除字符串的第一部分?

    该代码将给出第一部分 但是如何删除它并获取没有第一部分的整个字符串 echo first second third etc cut d f1 你应该看看info cut 这将解释什么f1 means 实际上我们只需要第二个字段之后的字段 f
  • 如何使用 nohup 获取正在运行的程序列表

    我正在通过 SSH 连接访问运行 CentOS linux 发行版 的服务器 由于我无法始终保持登录状态 因此我使用 nohup command 来运行我的程序 我找不到如何获取我开始使用 nohup 的所有程序的列表 工作 只有在我注销之
  • 无法从 bash 脚本使用 nvm

    我正在尝试编写一个 shell 脚本来自动设置我的开发环境 安装 python nvm node mongo 等 我正在使用 nvm 来安装 Node js 它告诉您关闭并重新打开终端以开始使用 nmv 命令 我尝试获取 bashrc 和
  • 批量检测系统是32位还是64位

    有谁知道如何创建一个批处理文件 如果是 64 位系统 可以对一个程序进行 shell 处理 如果是 32 位系统 则可以对另一个程序进行 shell 处理 检查 PROCESSOR ARCHITECTURE being x86 if PRO
  • 如何将输出重定向到文件,如果文件不存在则不创建它?

    我需要将输出重定向到一个文件 gt 在 shell 中 但如果该文件尚不存在 则不应创建该文件 如何实现这一目标 我尝试创建文件的符号链接并重定向到符号链接 但不幸的是 如果文件尚不存在 无论如何都会创建文件 也许我需要重定向到一个单独的程
  • 是否可以从应用程序执行 ADB shell 命令?

    我有一个安卓电脑 http www timingpower com rk3288 with root 开箱即用 连接到始终以横向显示的外部显示器 HDMI 和 USB 即使我的应用程序在清单中的活动声明中指定纵向 android scree
  • Ruby 在特定目录中运行 shell 命令

    我知道如何在 Ruby 中运行 shell 命令 例如 x cmd 但是 如何指定运行此命令的目录 有没有类似的脱壳方式 类似subprocess Popen在Python中 subprocess Popen r c mytool tool
  • Bash 目录上的 For 循环

    快速背景 ls src file1 file2 dir1 dir2 dir3 Script bin bash for i in src do if d i then echo i fi done Output src dir1 src di
  • 如何在不使用 MacPorts 或 Fink 的情况下在 OS X Leopard 上安装 lxml?

    我过去曾多次尝试过此操作并遇到问题 有没有人有在没有 MacPorts 或 Fink 的情况下在 OS X 上安装 lxml 的方法 并且绝对有效 最好有完整的 1 2 3 步骤来下载和构建每个依赖项 感谢 Twitter 上的 jesse
  • LaunchAgent 不运行 shell 脚本

    在 Catalina 之前的 macOS 下 我有一个每天运行 shell 脚本的 LaunchAgent 升级并切换到 zsh 后 它不起作用 我检查过的事情 shebang 切换到 zsh shell脚本可以从命令行手动执行 sh 在系
  • 带变量的 AWK 负正则表达式

    我在 bash 脚本中使用 awk 来比较两个文件以获取不匹配的行 我需要将第二个文件的所有三个字段 作为一个模式 与第一个文件的所有行进行比较 第一个文件 chr1 9997 10330 HumanGM18558 peak 1 150 1
  • 如何使用 exec.Command 在 golang 中执行 Mysql 脚本

    您好 我正在尝试执行一个脚本以使用 Golang 将数据填充到数据库中 func executeTestScript cmd exec Command usr local mysql bin mysql h127 0 0 1 P3333 u
  • C shell 脚本中是否有短路逻辑运算符?

    我认为 C shell 脚本的行为会像 C 一样 并对逻辑运算符使用短路求值 if e cache find monitor newer cache then endif 但在 if 语句中 即使第一个条件为真 也会检查第二个条件 从而给出
  • 在 shell 脚本中将脚本目录更改为用户的 homedir

    在我的 bash 脚本中 我需要将当前目录更改为用户的主目录 如果我想更改为用户的foo主目录 从命令行我可以执行以下操作 cd foo 效果很好 但是当我从script它告诉我 bar sh line 4 cd foo No such f

随机推荐

  • 通过高德地图API取得两点坐标间的距离

    高德地图在取两点间的距离比百度地图更详细 可以分为几种类型的API 提供的步行 公交 驾车查询 今天咱们使用驾车的API来计算两点的距离 其它的API大同小异 参考高德地图的API地址 路径规划 API文档 开发指南 Web服务 API 高
  • RunBlocking CoroutineScope SupervisorScope Launch Async CoroutineStart协程启动模式 Job对象和生命周期

    协程的作用域构建器 RunBlocking runBlocking是常规函数 会把当前主线程包装成一个主协程 其会阻塞当前线程 只有当等待其主协程体以及里面的所有子协程执行结束以后 才会让当前线程执行 CoroutineScope coro
  • QT foreach

    如果只想按顺序迭代容器中的所有项 可以使用Qt的foreach关键字 该关键字是对C 语言的Qt特定添加 并使用预处理器实现 与任何其他C 循环构造一样 您可以在foreach循环的主体周围使用大括号 并且可以使用Break来离开循环 其语
  • 华为OD机试 - 数组连续和(Java)

    题目描述 给定一个含有N个正整数的数组 求出有多少个连续区间 包括单个正整数 它们的和大于等于x 输入描述 第一行两个整数N x 0 lt N lt 100000 0 lt x lt 10000000 第二行有N个正整数 每个正整数小于等于
  • 锐捷交换机密码破解

    资料来源 https search ruijie com cn 8447 rqs preview html ie utf 8 wd eHAiOjE1NDU4NzUxNDcsIm5iZiI6MTU0NTYxNTk0N3020180920150
  • 虚拟机-扩充硬盘

    扩充硬盘 https www cnblogs com wy20110919 p 9150914 html https cloud tencent com developer article 1563508 from 14588
  • next_permutation(a,a+n)

    早就听说了了next permutation 产生全排列的强大 一直到昨晚遇到一个对字符串产生全排列的问题才知道这个函数的强大 我们队是按照dfs去搞全排列 然后在进行字符串的匹配 结果写的很长 过程中还各种debug 于是决定今天学一下
  • 认知-想象力:想象力

    ylbtech 认知 想象力 想象力 想象力 是人在已有形象的基础上 在头脑中创造出新形象的能力 比如当你说起汽车 我马上就想像出各种各样的汽车形象来就是这个 道理 因此 想象一般是在掌握一定的知识面的基础上完成的 想象力 是在你头脑中创造
  • Spring学习笔记(一)【BeanUtils.copyProperties方法】

    Spring下的BeanUtils copyProperties方法是深拷贝还是浅拷贝 一 浅拷贝深拷贝的理解 简单地说 拷贝就是将一个类中的属性拷贝到另一个中 对于BeanUtils copyProperties来说 必须保证属性名和类型
  • 【不忘初心】Win11_21H2_22000.100_X64_四合一[纯净精简版][2.9G](2021.8.5)

    此版更新补丁未知 WIN11全新的UI界面出炉 可以说这一次Windows 11全新升级 无论是从Logo上还是UI界面设计 都有很大的变化 不过WIN11目前还不够稳定 小问题比较多 母版来自MSDN WIN11 21H2 22000 1
  • 大学概率论与数理统计知识点详细整理

    目录 概率论学习自述 概率论的一些基本概念 随机变量的分布 一维随机变量的分布 二维随机变量 抽样分布 数学期望 矩 方差 协方差 常见分布的数学期望与方差 一些重要的定理公式 参数估计 1 点估计 2 区间估计 假设检验 独立性 概率论学
  • 蒙皮流程1

    选中要调整权重的点 打开这个窗口 可以调整他的权重值 蒙皮里面的导出导入权重贴图可以在要对模型做修改的情况下 对已弄好的权重进行保留 或者直接用下面的替换几何体用新的替换旧的 给人物下巴绘制权重时 下巴骨骼与躯干骨骼连接处插入一个小骨骼 给
  • Unity ScrollView左右拖拽翻页

    ScrollView来实现左右拖拽的翻页 类似于微信 左右拖拽时候上下无法拖拽 上下拖拽的时候左右无法拖拽 并且左右拖拽的是时候 会有弹力进行对对齐 using System Collections using System Collect
  • C++这么难,为什么我们还要学习C++?

    文章目录 前言 1 为什么难学 2 C 的意义 3 什么时候该用C 4 如何学习C 5 学前勉言 前言 C 可算是一种声名在外的编程语言了 这个名声有好有坏 从好的方面讲 C 性能非常好 哪个编程语言性能好的话 总忍不住要跟 C 来单挑一下
  • Linux下WiFi驱动开发——WiFi基础知识解析(转)

    详见 https blog csdn net zqixiao 09 article details 51103615
  • SQL Server 命令行管理工具:SqlLocalDB.exe

    SqlLocalDB exe 是一个简单的工具 它使用户能够从命令行轻松管理 LocalDB 实例 它作为 LocalDB 实例 API 的简单包装实现 与在很多类似的 SQL Server 工具 例如 SQLCMD 中一样 参数作为命令行
  • flask框架实现文件下载功能

    传入文件名即可下载文件 from flask import Flask send file Response send from directory app Flask name app route download def downloa
  • Python编程题

    把数组 0 1 1 0 1 1 0 1 1 1 0 0 中所有的1排到左侧 0排到右侧 方法1 思路 1 首先进行可以保证0在左侧 1在右侧 2 新建一个空列表 3 把原列表中的值从最后1个复制给新建列表 直到第一个元素被复制完 list1
  • Qt 画图,void A::paintEvent(QPaintEvent *event){..}这函数怎么调用它?

    不用调用 需要用这个函数的时候调用A gt update 就可以得到调用这个函数的目的
  • shell中单引号、双引号、反引号的用法及区别

    单引号 这个比较暴力 不管单引号里面有什么都原样输出 无视一切变量 所见即所得 如果要用来做字符比较和输出 注意不能输出变量 也不认识通配符 命令等 even ubuntu echo a PATH aa a PATH aa 双引号 双引号感