Linux echo 命令:超越基础知识

2023-10-24

The echoLinux 中的命令允许您显示文本或将数据输出到终端。

它可用于各种目的,例如打印变量的值、生成格式化输出,甚至调试脚本。
在终端中尝试以下命令:


echo "Hello, world!"
  

在这里,“你好,世界!”被打印到终端。这echo命令将字符串作为参数并将其打印到标准输出,默认情况下这是您的终端。

 

 

什么是标准输出?

标准输出,通常缩写为 stdout,是程序写入其输出数据的默认数据流。

在Linux和类Unix系统中,标准输出默认是屏幕或终端。
我们来看一个简单的命令:


echo "This is standard output"
  

此命令会将“这是标准输出”打印到您的终端。默认情况下,echo命令将其输出发送到标准输出。

 

语法和选项

的一般语法为echo命令是:


echo [option]... [string]...  

The echo命令支持以下选项:

  • -n:此选项可防止尾随换行符。默认情况下,echo在输出末尾附加一个换行符。使用-n抑制这种行为。
  • -e:此选项启用反斜杠转义的解释。它允许您使用特殊字符,例如\n对于换行符,\t用于选项卡等。
  • -E:此选项禁用反斜杠转义的解释。这是默认行为echo,但可以用于清晰起见或覆盖不同环境中的任何默认更改。

 

回显变量

在 bash 脚本中,您可以创建变量来存储信息。随着echo命令,可以显示这些变量的内容。
首先,我们创建一个变量:


name="John Doe"
  

现在,让我们打印这个变量的值:


echo $name
  

在这里,“John Doe”将被打印到您的终端。

通过使用$变量名前的符号 ($name),你告诉 Bash 你想要显示的内容name多变的。

您还可以显示以下值环境变量使用回声:


echo $USER  

这将打印当前登录的用户。

 

打印特殊字符

您可以使用以下命令显示这些特殊字符echo使用反斜杠 (\) 这称为转义字符。

它告诉 Bash 将下一个字符视为文字字符,而不是特殊字符。

在 Bash 中,特殊字符是具有特定功能的字符。例如,$符号用于变量替换。
让我们尝试输出一个美元符号:


echo "\$100"
  

此命令将在您的终端上打印“$100”。

 

抑制尾随换行符

默认情况下,echo命令在其输出末尾添加一个换行符。如果你想抑制这个换行符,你可以使用-n option.


echo -n "No newline here"
  

执行该命令后,打印“No newline here”,但光标停留在同一行。

 

禁用反斜杠转义的解释

The -E选项禁用反斜杠转义的解释,这是默认行为echo。这意味着特殊字符将被视为纯文本。


echo -E "Hello\nWorld"
  

该命令将打印“Hello\nWorld”,因为-E阻止了echo口译命令\n作为换行符。

 

反斜杠转义的解释

The -e选项启用反斜杠转义的解释。这允许您使用特殊字符,例如\n对于新线路,\t用于选项卡等。


echo -e "Hello\nWorld"
  

该命令将打印:


Hello
World
  

通过使用-e, the echo命令解释n作为换行符,这就是为什么“Hello”和“World”打印在不同的行上。

警报(响铃)

The \a字符会触发蜂鸣声或终端中的警报。它也被称为铃字符。


echo -e "\a"
  

当您运行此命令时,您会听到蜂鸣声。

退格键

The \b字符被解释为退格键。它删除前一个字符。


echo -e "Helloo\b World"
  

该命令将打印“Hello World”。多余的“o”被退格字符删除b.

抑制进一步输出

The \c字符会抑制该行上的任何进一步输出。


echo -e "Hello\c World"
  

该命令将打印“Hello”,然后隐藏该行的其余部分,因此不会出现“World”。

Escape

The \e字符是转义字符。它可用于启动其他字符的转义序列。


echo -e "\e"
  

该命令只打印一个空行,因为\e本身不产生任何可见的输出。

它通常与转义序列中的其他字符结合使用,例如打印彩色输出,我们将在本教程后面看到。

换页

The \f字符是换页符。它用于将光标移动到下一页的开头。

然而,由于终端没有页面,\f只需将光标移动到新行。


echo -e "Hello\fWorld"
  

该命令将打印:


Hello
     World
  

New line

The \n字符是换行符。它用于开始新行。


echo -e "Hello\nWorld"
  

该命令将打印:


Hello
World
  

The n角色在“Hello”之后开始新的一行。

回车符

The \r字符是回车符。它将光标移回行首。


echo -e "Hello\rWorld"
  

该命令将打印“World”。回车符\r打印“Hello”后将光标移回行首,“World”打印在行首,覆盖“Hello”。

水平制表符

The \t字符是水平制表符。它插入一个制表符空格。


echo -e "Hello\tWorld"
  

该命令将打印“Hello World”。这\t字符在“Hello”和“World”之间插入了一个制表符空格。

垂直标签

The \v字符是垂直制表符。它开始一个新行并在下一个字符之前添加一些空格。


echo -e "Hello\vWorld"
  

该命令将打印:


Hello
     World
  

反斜杠

The \\序列代表文字反斜杠。


echo -e "Hello\\World"
  

该命令将打印“Hello\World”。

ASCII 码为 nnn(八进制)的字符

您可以使用\0nnn用它来表示一个字符ASCII 码八进制格式。确保更换nnn与要打印的字符的八进制 ASCII 代码。


echo -e "\0061"
  

该命令将打印“a”。 “a”的 ASCII 码以八进制格式表示为 61,因此\0061代表“a”。

 

使用 ANSI 转义码打印彩色输出

您可以使用 ANSI 转义码在终端中打印彩色输出。 ANSI 转义码开头\e[后面跟着一些参数,并以m.
让我们打印“Hello, world!”红色的:


echo -e "\e[31mHello, world!\e[0m"
  

该命令打印“Hello, world!”红色的。转义码\e[31m将文本颜色更改为红色,并且\e[0m将其重置回默认颜色。

 

将 echo 输出重定向到文件

您可以使用>运算符重定向输出echo到一个文件。


echo "Hello, world!" > hello.txt
  

运行此命令后,将创建一个名为“hello.txt”的文件,以及“Hello, world!”被写入此文件。如果该文件已经存在,则其内容将替换为“Hello, world!”。

 

附加到文件

The >>运算符可用于附加输出echo到一个文件。


echo "Hello again!" >> hello.txt
  

该命令添加“Hello again!”到“hello.txt”的末尾。它不会覆盖现有内容,只是附加到现有内容上。

 

通过管道将输出输出到另一个命令

The |(管道)运算符用于将一个命令的输出作为另一命令的输入传递。


echo "Hello, world!" | wc -w
  

该命令打印“2”。这echo命令生成字符串“Hello, world!”,然后将其通过管道传输到wc -w命令。

The wc -w命令计算输入中的单词数,因此打印“2”。

 

带回声的引号

当您使用变量或转义序列时echo,记得用引号。


name="John Doe"
echo "$name"
echo -e "Hello\nWorld"
  

第一个命令打印“John Doe”,第二个命令打印:


Hello
World
  

如果没有引号,变量将不会被扩展,转义序列也不会被解释。

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

Linux echo 命令:超越基础知识 的相关文章

  • 安装Python时出错

    击中后 make install 我收到以下错误 usr bin install cannot create regular file usr local bin python2 6 Permission denied make altbi
  • 如何获取子进程的返回值?

    程序计算从 1 到 N 的数字之和 子进程计算偶数之和 父进程计算奇数之和 我想在父进程中获取子进程的返回值 我怎么做 include
  • 如何在Linux shell脚本中将文本文件中的两行合并到同一行中

    我使用 wget 命令从 Nagios 下载了它的 html 文件 然后使用以下代码将该 html 文件转换为 Textfile html2text width 180 file html gt a txt 然后我剪切了前 10 行 因为我
  • 执行bash脚本时如何显示行号

    我有一个测试脚本 其中有很多命令并将生成大量输出 我使用set x or set v and set e 因此当发生错误时脚本将停止 但我还是很难定位到哪一行执行停止了 从而定位问题所在 有没有一种方法可以在每行执行之前输出脚本的行号 或者
  • Nvcc 的版本与 CUDA 不同

    我安装了 cuda 7 但是当我点击 nvcc version 时 它打印出 6 5 我想在 GTX 960 卡上安装 Theano 库 但它需要 nvcc 7 0 我尝试重新安装cuda 但它没有更新nvcc 当我运行 apt get i
  • Eclipse CDT 内置包含目录

    Under Eclipse CDT gt Project Settings gt C C General gt Paths and Symbols gt Includes gt GNU C 有一个包含路径的列表 有些是粗体的并且是特定于项目
  • 当非特权用户运行 C/asm 程序时,会对 Linux 造成什么危害?

    我一直在考虑一种场景 让用户 可以是任何人 可能有恶意 提交在 Linux PC 我们称之为基准节点 上运行的代码 目标是为单线程例程创建一种自动化基准测试环境 假设一个网站向代理发布了一些代码 该代理将此代码交给基准节点 而基准节点仅与代
  • 如何在 Docker 容器中运行 Nginx 而不停止?

    我在 Docker 容器上安装了 Nginx 并尝试像这样运行它 docker run i t p 80 80 mydockerimage usr sbin nginx 问题是 Nginx 的工作方式是 初始进程立即生成一个 Nginx 主
  • 使用Visual C++进行Linux开发时是否可以直接使用linux文件夹/usr/include

    我尝试使用针对 ubuntu 16 04 VM 的 Visual C for Linux Development 插件 与虚拟机的连接以及本地文件传输到远程文件夹 home user projects projectx 均成功 但是 当我尝
  • 在 systemd 服务文件内/内联添加 shell 命令

    我正在运行gunicorn通过 systemd 将服务器作为服务 这是示例service file Unit Description Gunicorn NGINX After network target Service User root
  • 使用curl复制本地文件[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有办法用curl复制本地文件 我需要它作为cp命令的替代品 这有点奇怪 但我正在一个 cp 不可用的环境中工作 你可以说 curl o
  • 使用“touch”创建目录? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 1 在 A 目录中 find type f gt a txt 2 在 B 目录中 cat a txt while read FILENAMES do
  • 如何重新安装最新的cmake版本?

    我想在Linux环境下安装cmake的最新版本 我安装了 cmake 3 5 版 但某些应用程序不支持 我尝试通过卸载当前版本来升级它 但是当我使用 sudo apt get install cmake 重新安装时 我重新安装了相同的版本
  • 如何在带有空格的目录上使用 find ?

    这里有一些奇怪的事情 mkdir p 1 2 3 4 touch 1 2 3 4 file jpg for f in find type f name jpg do echo f done 这返回 1 2 3 4 file jpg and
  • 自动将 Linux 文件名重命名为 Windows 中合法的新文件名

    我想将 linux 文件重命名为在 windows 中合法的文件名 它的长度不应超过允许的长度 并且不应包含 Windows 中不允许的字符 有时我将论文的标题复制到文件名 它们有特殊字符 例如 or 另外 从 pdf 中复制和粘贴标题时
  • ModemManager:mmcli 获取信号强度

    我无法检索 Sierre Wireless MC7304 上的信号强度 另外通过 mmcli 发送 AT 命令似乎不起作用 sudo mmcli m org freedesktop ModemManager1 Modem 0 signal
  • Android Studio无法更新

    我正在运行 Mint 14 Linux 并且在使用 Android Studio 时遇到了一个主要问题 运行更新功能时 所有软件包都会返回 访问被拒绝 状态 我怎样才能解决这个问题 如何授予下载和安装的权限 附加信息 studio sh 正
  • FLTK 1.4 小部件位置 w.r.t. X11 根窗口?

    context 我正在和其他人一起编码参考系统 http refpersys org C 17 上的 GPLv3 项目gitlab https gitlab com bstarynk refpersys适用于 GNU Linux x86 6
  • x86 平台中的 KVM 影子页表处理

    据我了解 在没有硬件支持来宾虚拟到主机物理地址转换的处理器上 KVM 使用影子页表 当来宾操作系统修改其页表时 会构建和更新影子页表 硬件中有没有专门的指令 以x86为参考 来修改页表 除非有特殊说明 否则不会对VMM 造成陷阱 Linux
  • Linux 中如何确定哪个进程正在使用某个端口

    我目前正在其默认端口上运行 RethinkDB 因为如果我将浏览器指向localhost 8080我看到 RethinkDB Web 界面 我想关闭 RethinkDB 并使用以下命令在另一个端口上重新打开它 port offset争论 然

随机推荐

  • 如何在 Ubuntu 18.04 上安装 Java

    Java 是世界上最流行的编程语言之一 用于构建不同类型的跨平台应用程序 本教程介绍如何在 Ubuntu 18 04 上安装各种版本的 OpenJDK 以及 Oracle Java 相同的说明适用于 Ubuntu 16 04 和任何基于 U
  • 如何在 Ubuntu 18.04 上安装 Apache Cassandra

    Apache Cassandra 是一个免费的开源 NoSQL 数据库 不存在单点故障 它提供线性可扩展性和高可用性 而不会影响性能 Apache Cassandra 被许多组织使用 包括 Apple NetFlix eBay 和 Easo
  • Linux 中的超时命令

    timeout是一个命令行实用程序 它运行指定的命令 并在给定时间段后终止该命令 如果该命令仍在运行 换句话说 timeout允许您运行有时间限制的命令 这timeout命令是 GNU 核心实用程序包的一部分 几乎所有 Linux 发行版上
  • 如何在 CentOS 7 上添加交换空间

    交换空间是磁盘上的空间 当物理 RAM 内存已满时使用 当 Linux 系统耗尽 RAM 时 非活动页面将从 RAM 移至交换空间 交换空间可以采用专用交换分区或交换文件的形式 在大多数情况下 当在虚拟机上运行 CentOS 时 不存在交换
  • 如何在 Ubuntu 18.04 上设置 Apache 虚拟主机

    在本教程中 我们将提供有关如何在 Ubuntu 18 04 上设置 Apache 虚拟主机的分步说明 Apache 虚拟主机允许您在一台计算机上运行多个网站 使用虚拟主机 您可以指定站点文档根目录 包含网站文件的目录 为每个站点创建单独的安
  • 如何在 Ubuntu 20.04 上安装和配置 VNC

    虚拟网络计算 VNC 是一种图形桌面共享系统 允许您使用键盘和鼠标远程控制另一台计算机 它是 Microsoft 的开源替代品远程桌面协议 RDP 本文介绍如何在 Ubuntu 20 04 上安装和配置 VNC 服务器 我们还将向您展示如何
  • 如何在 Ubuntu 18.04 上禁用防火墙

    Ubuntu 附带了一个名为 UFW 简单防火墙 的防火墙配置工具 UFW 是一个用户友好的前端 用于管理 iptables 防火墙规则 其主要目标是使管理防火墙规则更容易 或者顾名思义 不复杂 强烈建议保持防火墙启用 但是 在某些情况下
  • 如何在 Debian 9 上安装 Jenkins

    Jenkins是一个开源自动化服务器 提供了一种设置持续集成和持续交付 CI CD 管道的简单方法 持续集成 CI 是一种 DevOps 实践 团队成员定期将代码更改提交到版本控制存储库 然后运行自动化构建和测试 持续交付 CD 是自动构建
  • 如何在 Debian 10 上配置 MySQL (MariaDB) 主从复制

    MySQL 复制是将数据从一台数据库服务器 主服务器 复制到一台或多台服务器 从服务器 的过程 MySQL 支持多种复制拓扑 其中主 从拓扑是最著名的拓扑之一 其中一台数据库服务器充当主服务器 而一台或多台服务器充当从服务器 默认情况下 复
  • 如何在 Ubuntu 18.04 上安装 Ghost

    Ghost 是一个构建在 Node js 平台之上的现代源代码发布平台 它完全可定制且易于使用 使您可以以几乎零的学习曲线发布内容 在本教程中 我们将向您展示如何使用 Nginx 作为代理 免费的 Let s Encrypt SSL 证书
  • 使用 NumPy 范数计算向量和矩阵范数

    在线性代数中 范数是为向量空间中的每个向量分配严格正的长度或大小的函数 它是矢量大小的度量 从数学上来说 对于一个向量x the p 范数定义为 x p sum xi p 1 p 在本教程中 我们将使用numpy linalg norm f
  • 在 Pandas query() 中使用字符串方法:数据帧过滤

    The Pandas 中的 query 方法允许您过滤数据帧 并且当与字符串方法结合使用时 可能性变得广泛 在本教程中 您将学习如何在query 功能来细化和过滤数据 目录 hide 1 检查子字符串 str contains 2 str
  • Seaborn histplot(用直方图可视化数据)

    Seaborn 是最广为人知的数据可视化库之一 运行在Matplotlib 通过 Seaborn 我们可以渲染各种类型的绘图 并提供简单 直观且高度可定制的 API 来生成数据可视化 如果没有丰富的可视化 就很难理解数据并与数据进行交流 想
  • Kivy 教程 – 使用 Python 构建桌面 GUI 应用程序

    Kivy 是一个开源 Python 库 您可以使用它在 Windows Linux macOS Android 和 iOS 上创建应用程序 我们将讨论如何使用 Kivy 按钮 标签 回收视图 滚动视图 Kivy Canvas 和其他小部件来
  • NumPy 矩阵乘法(从理论到实际示例)

    矩阵乘法是线性代数中的基本运算 它采用一对矩阵并产生另一个矩阵 用数学术语来说 给定两个矩阵 A 和 B 乘积 AB 是通过 A 的行与 B 的列的点积来计算的 本教程旨在深入了解矩阵乘法NumPy 目录 hide 1 逐元素与矩阵乘法 2
  • Python相关矩阵教程(使用Pandas)

    在本博客中 我们将介绍一个重要的多变量数据描述性统计量 称为相关矩阵 我们将学习如何在 Python 中使用以下命令创建 绘制和操作相关矩阵Pandas 我们将讨论以下主题 目录 hide 1 What is the correlation
  • Shell 脚本编写分步教程

    在本教程中 我们将讨论 shell 脚本以及如何制作第一个 shell 脚本 它们通常被称为 shell 脚本 但我们将它们称为 Bash 脚本 因为我们将在其他 Linux shell 中使用 Bash 有 zsh tcsh ksh 和其
  • 使用 Curl 命令下载文件:综合指南

    本教程深入探讨使用以下命令下载文件的方法卷曲命令 我们将介绍 HTTP 下载 安全 HTTPS 传输 使用 FTP 服务器的基础知识 甚至浏览分段下载和速度调整等高级功能 目录 hide 1 下载到标准输出 2 下载并保存到文件 3 验证
  • 使用 to_numpy() 将 Pandas DataFrame 转换为 NumPy 数组

    The DataFrame to numpy 函数 由提供Pandas库 提供了一种将 DataFrame 转换为NumPy 数组 它返回一个 ndarray NumPy 的基本数据结构 可以使用各种 NumPy 库函数轻松操作它 当您想要
  • Linux echo 命令:超越基础知识

    The echoLinux 中的命令允许您显示文本或将数据输出到终端 它可用于各种目的 例如打印变量的值 生成格式化输出 甚至调试脚本 在终端中尝试以下命令 echo Hello world 在这里 你好 世界 被打印到终端 这echo命令