【Shell秒懂系列】引用及转义(单引号/双引号/反斜杠/反引号)

您所在的位置:网站首页 perl转义单引号 【Shell秒懂系列】引用及转义(单引号/双引号/反斜杠/反引号)

【Shell秒懂系列】引用及转义(单引号/双引号/反斜杠/反引号)

2024-07-08 08:42:06| 来源: 网络整理| 查看: 265

Shell编程中主要以字符串实现数据传递,因此也赋予引号更多含义。为避免一些不必要的麻烦,你应当首先考虑使用双引号引用参数变量;引号和转义是Shell中对字符串进行解析、扩展的主要手段。 引号释义 1. 单引号

去除字符串中的所有特殊含义,也即保持引号内的原始内容。

$ echo & # 在后台执行echo $ echo '&' # 打印& $ echo "$PATH" # 打印系统环境变量 $ echo '$PATH' # 防止变量名扩展,直接打印$PATH 2. 双引号

允许变量名扩展($var)、子进程($(command)或`command`)和转义操作(\)。以下字符失去特殊含义:

作为argument分隔符的空格变为普通空格具有强约束的单引号变为普通单引号字符模型匹配特殊字符变为普通字符扩展$HOME的~特殊字符变为普通字符…

相比于不带任何引号,双引号可以将可能存在的字符分割或扩展视作一个整体。

$ echo "$PATH" # 打印变量PATH的值 $ echo "${PATH%%:*}" # 仅输出第一条环境变量

注: 一个关于是否使用双引号而带来不同结果的例子:

files=$(find . -type f)

不使用双引号,echo $files的输出为

...

原来find通过newline粉葛的输出结果被shell解释为空格。而使用双引号,echo "$files"的输出为:

...

可以保持find的原本输出。由此例可以看出,在一般情形下应当保持使用双引号修饰变量的习惯,避免意料之外的输出结果。

3. 反引号

通过 ``在子进程中执行命令,一般建议用$(command)替代,显式执行。

4. 反斜杠

转义,使特殊字符失去特殊含义。在没有引号或双引号内有效,在单引号中无效。

5. $’…’(ANSI C like strings)

比单引号的条件宽松,允许转义字符转义,具有移植性。例如,当需要在read prompt中使用在多行字符串时:

read -p "Please assign a new value to the LANG(=$LANG) variable: \n\tLANG=" LANG echo $LANG

直接使用\n将无法转义。此时需引入$''字符串:

read -p "Please assign a new value to the LANG(=$LANG) variable: "$'\n\t'"LANG=" LANG echo $LANG

如字符串中不需要变量扩张,则直接使用$'':

read -p $'Somehow\na multiline prompt\nhere: '

也可以将包含转义的可复用字符作为变量调用:

newline=$'\n' read -p "Somehow${newline}a multiline prompt${newline}here: " 参考 BashFAQ - QuotesQuotes and escaping [Bash Hackers Wiki]


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭