Linux中Shell变量怎么输出带有转义字符的原内容

风枫吖_4437

风枫吖_4437

2026-10-05

610人浏览

原创

要原样输出shell变量中带转义字符的字面值,关键在于赋值时用单引号(如var='hello world')确保反斜杠不被解析,再用echo -e或printf '%s'输出;最可靠的是printf '%q',它将变量转为可安全复用的shell字面形式。

linux中shell变量怎么输出带有转义字符的原内容

要输出 Shell 变量中**带转义字符的原内容**(即字面值,不解析 、 等),关键在于:**避免让 echo 解析转义,同时防止 Shell 在展开变量时提前解释反斜杠**。

用单引号包裹变量引用

单引号会禁用所有 Shell 特殊字符解释,包括变量展开和转义符处理。所以不能直接写 '$var'——这样连变量都不会展开。

正确做法是:**混合使用单双引号,只对含转义符的部分用单引号,变量部分用双引号**。例如:

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • 若变量 var="Hello World ",你想原样输出文字 Hello World (不是换行和制表):
  • echo '$var' → 输出字面 $var,不是变量值
  • echo "$var" → 输出解析后的结果(如实际换行、缩进)
  • ✅ 正确方式:printf '%s' "$var" | sed 's/\/\\/g' 或更实用的:printf '%q' "$var" ——它会把变量内容转为可安全复用的 shell 字面形式,含转义的也按字面转义显示

用 printf %q 安全转义输出

printf '%q' 是最可靠的方法:它把变量内容转换成在 shell 中能被准确重新解析的字面表示,自动对空格、反斜杠、换行等做转义。

  • var="Line1 Line2 OK"
  • printf '%q ' "$var" → 输出类似:Line1$' 'Line2$' 'OK
  • 这表示:原始字符串里确实含有 和 两个字符,而非实际控制符

避免 echo -e,改用 echo -E 或裸 echo

echo -E(如果 Shell 支持,如 bash)明确禁止反斜杠转义;多数情况下不加选项的 echo 也不解析转义,但行为因实现而异,不可靠。

  • ❌ echo -e "$var" → 强制解析转义,得到格式化效果
  • ✅ echo -E "$var" → 保持 、 作为普通字符输出(前提是变量本身存的就是字面 )
  • ⚠️ 注意:变量值必须是字面含反斜杠,比如 var='Hello World'(单引号赋值),而不是 var="Hello World"(双引号会让 在赋值时就被解释)

赋值阶段就决定是否保留转义字符

变量内容是否含真实转义符,取决于你**如何赋值**:

  • 用单引号:var='Hello World' → $var 的值就是 12 个字符:H e l l o n W o r l d
  • 用双引号:var="Hello World" → $var 的值是 11 个字符,含一个真实换行符
  • 想输出字面 ,必须从单引号赋值开始,再配合 echo -E 或 printf '%s'

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3830

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3293

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2433

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5830

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5462

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3233

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2725

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2939

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习