linux echo命令_如何在Linux上使用Echo命令

linux echo命令

linux echo命令

A Linux terminal window on a Ubuntu-themed desktop.
Fatmawati Achmad Zaenuri/Shutterstock Fatmawati Achmad Zaenuri / Shutterstock

The echo command is perfect for writing formatted text to the terminal window. And it doesn’t have to be static text. It can include shell variables, filenames, and directories. You can also redirect echo to create text files and log files. Follow this simple guide to find out how.

echo命令非常适合将格式化的文本写入终端窗口。 而且它不必是静态文本。 它可以包括外壳程序变量,文件名和目录。 您还可以重定向echo以创建文本文件和日志文件。 遵循此简单指南以了解操作方法。

回声重复您告诉它重复的内容 (Echo Repeats What You Tell It To Repeat)

Zeus was fond of leaving Mount Olympus to consort with beautiful nymphs. On one trip, he told a mountain nymph called Echo to waylay his wife, Hera, if she followed him. Hera did come looking for Zeus, and Echo did all she could to keep Hera in conversation. Finally, Hera lost her temper and cursed poor Echo so that she only repeat the last words that someone else had said. What Hera did to Zeus when she caught up with him is anybody’s guess.

宙斯喜欢离开奥林匹斯山与美丽的仙女结伴。 在一次旅行中,他告诉一个叫Echo的山若虫,如果她的妻子赫拉(Hera)跟着他的话,要杀死他。 Hera确实来找宙斯,而Echo竭尽所能让Hera保持对话。 最后,赫拉发脾气并诅咒可怜的回声,因此她只重复别人说的最后一句话。 赫拉在追赶宙斯时对宙斯所做的事是所有人的猜测。

And that, pretty much, is echo‘s lot in life. It repeats what it has been told to repeat. That’s a simple function, but a vital one. Without echo , we’d be unable to get visible output from shell scripts, for example.

这几乎就是echo的生命。 它重复了被告知要重复的内容 。 这是一个简单的功能,但至关重要。 例如,如果没有echo ,我们将无法从shell脚本获得可见的输出。

Whilst not laden down with a multitude of bells and whistles, there’s a good chance that echo has some capabilities that you didn’t know about or that you’d forgotten.

虽然不会沉迷于繁琐的事情,但echo很有可能具有一些您不知道或忘记的功能。

回声? 回声! (echo? echo!)

Most Linux systems provide two versions of echo. The Bash shell has its own echo built into it, and there’s a binary executable version of echo as well.

大多数Linux系统提供echo两个版本。 Bash shell内置了自己的echo ,并且还有echo的二进制可执行版本。

We can see the two different versions by using the following commands:

通过使用以下命令,我们可以看到两个不同的版本:

type echo
whereis echo
type echo in a terminal window

The type command tells us whether the command we pass to it as its argument is a shell builtin, a binary executable, an alias, or a function. It reports to us that echo is a shell builtin.

type命令告诉我们作为参数 传递给它的命令是内置的shell,二进制可执行文件,别名还是函数。 它向我们报告说echo是内置的shell。

As soon as it has found an answer, type stops looking for further matches. So it doesn’t tell us if there are other commands with the same name present in the system. But it does tell us which one it finds first. And that’s the one that will be used by default when we issue that command.

一旦它已经找到了答案, type停止寻找更多的匹配。 因此,它不会告诉我们系统中是否存在其他具有相同名称的命令。 但是它确实告诉我们它首先找到哪个。 这就是我们发出该命令时默认使用的那个。

The whereis command looks for the binary executable, source code, and man page for the command we pass to it as its command-line parameter. It doesn’t look for shell builtins because they don’t have a separate binary executable. They’re an integral part of the Bash executable.

whereis命令将查找二进制可执行文件,源代码和手册页,以查找我们作为命令行参数传递给它的命令。 它不查找shell内置程序,因为它们没有单独的二进制可执行文件。 它们是Bash可执行文件不可或缺的一部分。

The whereis command reports that echo is a binary executable located in the /bin directory.

whereis命令报告echo是位于/bin目录中的二进制可执行文件。

To use that version of echo you would need to explicitly call it by providing the path to the executable on the command line:

要使用该版本的echo您需要通过在命令行上提供可执行文件的路径来显式调用它:

/bin/echo --version
/bin/echo --version in a terminal window

The shell builtin doesn’t know what the --version command-line argument is, it just repeats it in the terminal window:

内置的shell不知道--version命令行参数是什么,它只是在终端窗口中重复它:

echo --version
echo --version in a terminal window

The examples shown here all use the default version of echo, in the Bash shell.

此处显示的示例全部在Bash shell中使用echo的默认版本。

向终端写文本 (Writing Text to the Terminal)

To write a simple string of text to the terminal window, type echo and the string you want it to display:

要将简单的文本字符串写入终端窗口,请键入echo和您希望其显示的字符串:

echo My name is Dave.
echo My name is Dave. in a terminal window

The text is repeated for us. But as you experiment, you’ll soon discover that things can get slightly more complicated. Look at this example:

为我们重复了这段文字。 但是,当您进行实验时,您很快就会发现事情可能会变得稍微复杂一些。 看这个例子:

echo My name is Dave and I'm a geek.
echo My name is Dave and I'm a geek. in a terminal window

The terminal window displays a  > sign and sits there, waiting. Ctrl+C will return you to the command prompt. What happened there?

终端窗口显示>符号,坐在那里等待。 Ctrl + C将使您返回命令提示符。 那里发生了什么?

The single quote or apostrophe in the word “I’m” confused echo. It interpreted that single quote as the start of a quoted section of text. Because it didn’t detect a closing single quote, echo was waiting for more input. It expected that further input to include the missing single quote it was waiting for.

“我是”一词中的单引号或撇号使echo混淆了。 它将单引号解释为文本带引号的部分的开头。 因为它没有检测到结束的单引号,所以echo正在等待更多输入。 它期望进一步的输入包括它正在等待的缺少单引号。

To include a single quote in a string, the simplest solution is to wrap the whole string within double quote marks:

要在字符串中包含单引号,最简单的解决方案是将整个字符串用双引号引起来:

echo "My name is Dave and I'm a geek."
echo "My name is Dave and I'm a geek." in a terminal window

Wrapping your text in double quote marks is good general advice. In scripts, it cleanly delimits the parameters you’re passing to echo. This makes reading—and debugging—scripts much easier.

用双引号引起来的文字是很好的一般建议。 在脚本中,它清楚地分隔了您传递给echo的参数。 这使阅读和调试脚本变得更加容易。

What if you want to include a double quote character in your string of text? That’s easy, just put a backslash \ in front of the double quote mark (with no space between them).

如果要在文本字符串中包含双引号字符怎么办? 这很容易,只需在双引号之前放置一个反斜杠\ (它们之间没有空格)。

echo "My name is Dave and I'm a \"geek.\""
echo "My name is Dave and I'm a \"geek.\"" in a terminal window

This wraps the word “geek” in double quote marks for us. We’ll see more of these backslash-escaped characters shortly.

这将“ geek”一词用双引号引起来。 不久我们将看到更多这些反斜杠转义的字符。

将变量与echo一起使用 (Using Variables With echo)

So far, we’ve been writing predefined text to the terminal window. We can use variables with echo to produce output that is more dynamic and has values inserted into it for us by the shell. We can define a simple variable with this command:

到目前为止,我们已经在终端窗口中写入了预定义的文本。 我们可以将变量与echo一起使用,以产生更具动态性的输出,并通过shell为我们插入值。 我们可以使用以下命令定义一个简单的变量:

my_name="Dave"

A variable called my_name has been created. It has been assigned the value of the text “Dave.” We can use the variable name in the strings that we pass to echo , and the value of the variable will be written to the terminal window. You must put a dollar sign $ in front of the variable name to let echo know it is a variable.

已创建一个名为my_name的变量。 已为其分配了文本“ Dave”的值。 我们可以在传递给echo的字符串中使用变量名,变量的值将被写入终端窗口。 您必须在变量名称前加一个美元符号$ ,以使echo知道它是一个变量。

There is a caveat. If you’ve wrapped your string in single quote marks echo will treat everything literally. To have the variable value displayed, and not the name of the variable, use double quote marks.

有一个警告。 如果您将字符串用单引号引起来, echo将按字面意义对待所有内容。 要显示变量而不是变量名称 ,请使用双引号。

echo 'My name is $my_name'
echo "My name is $my_name"
echo 'My name is $my_name' in a terminal window

Somewhat aptly, that’s worth repeating:

适当地,值得重复一遍:

  • Using single quote marks results in the text being written to the terminal window in a literal fashion.

    使用文本引号结果被写入到终端窗口中文字的方式。

  • Using double quote marks results in the variable being interpreted—also called variable expansion—and the value is written to the terminal window.

    使用引号引起变量被解释(也称为变量扩展),并且该被写入终端窗口。

将命令与echo一起使用 (Using Commands With echo)

We can use a command with echo and incorporate its output into the string that is written to the terminal window. We must use the dollar sign $ as though the command was a variable, and wrap the whole command in parentheses.

我们可以将命令与echo ,并将其输出合并到写入终端窗口的字符串中。 我们必须像命令是变量一样使用美元符号$ ,并将整个命令括在括号中。

We’re going to use the date command. One tip is to use the command on its own before you start using it with echo. That way, if there is something wrong with the syntax of your command, you identify it and correct it before you include it in the echo command. Then, if the echo command doesn’t do what you expect, you’ll know the issue must be with the echo syntax because you’ve already proven the command’s syntax.

我们将使用date命令 。 一个技巧是在通过echo开始使用它之前,先单独使用该命令。 这样,如果命令的语法有问题,则可以在将其包含在echo命令中之前对其进行识别和更正。 然后,如果echo命令没有按预期执行操作,您将知道问题一定出在echo语法上,因为您已经证明了该命令的语法。

So, try this in the terminal window:

因此,请在终端窗口中尝试以下操作:

date +%D
date +%D in a terminal window

And, satisfied that we’re getting what we expect from the date command, we’ll integrate it into an echo command:

并且,满足于我们从date命令中获得了期望,我们将其集成到echo命令中:

echo "Today's date is: $(date +%D)"
echo "Today's date is: $(date +%D)" in a terminal window

Note the command is inside the parentheses and the dollar sign $ is immediately before the first parenthesis.

请注意,该命令在括号内,并且美元符号$在第一个括号之前。

用回声格式化文本 (Formatting Text With echo)

The -e (enable backslash escapes) option lets us use some backslash-escaped characters to change the layout of the text. These are the backslash-escaped characters we can use:

-e (启用反斜杠转义)选项使我们可以使用一些反斜杠转义的字符来更改文本的布局。 这些是我们可以使用的反斜杠转义字符:

  • \a: Alert (historically known as BEL). This generates the default alert sound.

    \ a :警报(历史上称为BEL)。 这将生成默认的警报声音。

  • \b: Writes a backspace character.

    \ b :写入一个退格字符。

  • \c: Abandons any further output.

    \ c :放弃任何进一步的输出。

  • \e: Writes an escape character.

    \ e :写一个转义字符。

  • \f: Writes a form feed character.

    \ f :写入换页符。

  • \n: Writes a new line.

    \ n :写一个新行。

  • \r: Writes a carriage return.

    \ r :写回车符。

  • \t: Writes a horizontal tab.

    \ t :写入水平制表符。

  • \v: Writes a vertical tab.

    \ v :写入垂直制表符。

  • \\: Writes a backslash character.

    \\ :写一个反斜杠字符。

Let’s use some of them and see what they do.

让我们使用其中一些,看看它们的作用。

echo -e "This is a long line of text\nsplit across three lines\nwith\ttabs\ton\tthe\tthird\tline"
echo -e "This is a long line of text\nsplit across three lines\nwith\ttabs\ton\tthe\tthird\tline" in a terminal window

The text is split into a new line where we’ve used the \n characters and a tab is inserted where we’ve used the \t characters.

文本被拆分为新行,在其中使用\n字符,并在使用\t字符的位置插入标签。

echo -e "Here\vare\vvertical\vtabs"
echo -e "Here\vare\vvertical\vtabs" in a terminal window

Like the \n new line characters, a vertical tab \v moves the text to the line below. But, unlike the \n new line characters, the \v vertical tab doesn’t start the new line at column zero. It uses the current column.

\n新行字符一样,垂直标签\v将文本移到下面的行。 但是,与\n新行字符不同, \v垂直选项卡不会在零列开始新行。 它使用当前列。

The \b backspace characters move the cursor back one character. If there is more text to be written to the terminal, that text will overwrite the previous character.

\b退格字符将光标移回一个字符。 如果有更多文本要写入终端,则该文本将覆盖前一个字符。

echo -e "123\b4"
echo -e "123\b4" in a terminal window

The “3” is over-written by the “4”.

“ 3”被“ 4”覆盖。

The \r carriage return character causes echo to return to the start of the current line and to write any further text from column zero.

\r回车符使echo返回到当前行的开头,并写入零列中的任何其他文本。

echo -e "123\r456"
echo -e "123\r456" in a terminal window

The “123” characters are overwritten by the “456” characters.

“ 123”字符被“ 456”字符覆盖。

The \a alert character will produce an audible “bleep.” It uses the default alert sound for your current theme.

\a警报字符将产生可听见的“哔哔”声。 它使用当前主题的默认警报声音。

echo -e "Make a bleep\a"
echo -e "Make a bleep\a" in a terminal window

The -n (no newline) option isn’t a backslash-escaped sequence, but it does affect the cosmetics of the text layout, so we’ll discuss it here. It prevents echo from adding a newline to the end of the text. The command prompt appears directly after the text that is written to the terminal window.

-n (无换行符)选项不是反斜杠转义的序列,但是它确实会影响文本布局的外观,因此我们将在这里讨论。 它可以防止echo将换行符添加到文本末尾。 命令提示符直接出现在写入终端窗口的文本之后。

echo -n "no final newline"
echo -n "no final newline" in a terminal window

在文件和目录中使用echo (Using echo With Files and Directories)

You can use echo as a sort of poor man’s version of ls. Your options are few and far between when you use echo like this. If you need any kind of fidelity or fine control, you’re better off using ls and its legion of options.

您可以将echo用作ls的可怜人版本。 像这样使用echo时,您的选择很少。 如果您需要任何一种保真度或精细控制,最好使用ls 及其众多选择 。

This command lists all of the files and directories in the current directory:

此命令列出当前目录中的所有文件和目录:

echo *

This command lists all of the files and directories in the current directory whose name starts with “D” :

此命令列出名称以“ D”开头的当前目录中的所有文件和目录:

echo D*

This command lists all of the “.desktop” files in the current directory:

此命令列出当前目录中的所有“ .desktop”文件:

echo *.desktop
echo * in a terminal window

Yeah. This isn’t playing to echo‘s strengths. Use ls.

是的 这并不是在发挥echo的作用。 使用ls

回显写入文件 (Writing to Files with echo)

We can redirect the output from echo and either create text files or write into existing text files.

我们可以重定向echo的输出,并创建文本文件或写入现有文本文件。

If we use the > redirection operator, the file is created if it does not exist. If the file does exist, the output from echo is added at the start of the file, overwriting any previous content.

如果我们使用>重定向运算符,则如果文件不存在,则会创建该文件。 如果文件确实存在,则echo的输出将添加到文件的开头,从而覆盖以前的所有内容。

If we use the >> redirection operator, the file is created if it does not exist. The output from echo is added to the end of the file and doesn’t overwrite any existing content of the file.

如果我们使用>>重定向运算符,则创建该文件(如果不存在)。 echo的输出将添加到文件的末尾,并且不会覆盖文件的任何现有内容。

echo "Creating a new file." > sample.txt
echo "Adding to the file." >> sample.txt
cat sample.txt
echo "Creating a new file." > sample.txt in a terminal window

A new file is created by the first command, and text is inserted into it. The second command adds a line of text to the bottom of the file. The cat command displays the contents of the file to the terminal window.

第一个命令创建一个新文件,并将文本插入其中。 第二个命令在文件底部添加一行文本。 cat命令将文件的内容显示到终端窗口。

And of course, we can include variables to add some useful information to our file. If the file is a logfile, we might want to have a timestamp added to it. We can do that with the next command.

当然,我们可以包含变量以向文件添加一些有用的信息。 如果该文件是日志文件,则可能需要添加时间戳。 我们可以使用下一个命令来做到这一点。

Note the single quote marks around the parameters for the date command. They prevent the space between the parameters being interpreted as the end of the parameter list. They ensure the parameters are passed to date correctly.

注意date命令的参数周围的单引号。 它们可以防止将参数之间的空格解释为参数列表的末尾。 他们确保参数传递给date正确。

echo "Logfile started: $(date +'%D %T')" > logfile.txt
cat logfile.txt
echo "Logfile started: $(date +'%D %T')" > logfile.txt in a terminal window

Our logfile is created for us and cat shows us that the datestamp and timestamp were both added to it.

我们为我们创建了日志文件,并且cat向我们显示了datestamp和timestamp均已添加到其中。

那是回声的曲目 (That’s echo’s Repertoire)

A simple command, but indispensable. If it didn’t exist, we’d have to invent it.

一个简单的命令,但必不可少。 如果它不存在,我们就必须发明它。

Zeus’s shenanigans did some good, after all.

毕竟,宙斯的恶作剧起到了一些作用。

翻译自: https://www.howtogeek.com/446071/how-to-use-the-echo-command-on-linux/

linux echo命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/255117.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

黑客帝国:梦中没有错与对 梦中有安也有危

(1)梦 窦唯曾经说过一句话:现实中实现不了的,让梦去实现吧。 1899年,一位精神科医生出版了一本书:梦的解析。 关于梦、关于精神,我最喜欢看老李子的两部电影:一部是关于梦的《盗梦空…

京东云宙斯上传单张图片php,PHP图片上传程序(单张)

/****************************************************************************** 参数说明: $max_file_size : 上传文件大小限制, 单位BYTE $destination_folder : 上传文件路径 $watermark : 是否附加水印(1为加水印,其他为不加水印); 使用说明: 1. 将PHP.INI文件里面的&q…

京东平台开发者入驻指南

一、 成为开发者 使用京东商家开放平台服务首先需要成为开放平台开发者。打开open.jd.com,使用京东账号登录 点击控制中心,提交开发者信息完成入驻 按要求完成信息提交后,通过审核即可成为开发者 二、 创建和管理应用 开发者首先需要…

监控神器:Prometheus 轻松入门,真香!

点击关注公众号,实用技术文章及时了解 导语 :Prometheus是一个开源的完整监控解决方案,本文将从指标抓取到查询及可视化展示,以及最后的监控告警,对Prometheus做一个基本的认识。 一、简介 Prometheus是古希腊神话里泰…

底层节点到节点上层是端到端_nEqual发布全新一代CDP平台宙斯版,解构企业营销数字化的底层逻辑...

企业数字化的浪潮已经向前奔涌了几年之久,随着包括消费者在内的外部环境和节奏已经全面数字化,企业数字化几乎是一个必行之举。到了今年,成熟的环境和疫情的到来使得行业中绝大多数从业者,都看见了实施数字化后的增长势能。 加之不…

记录对接京东宙斯API -- 同步订单信息到自身系统

记录对接京东宙斯API -- 同步订单信息到自身系统 目录1. 需求2. 准备工作一: 查看官方文档3. 准备工作二: 申请京东云鼎并入驻4. 创建一个新的项目并部署到云鼎.5. 调用订单API代码.6. JdService 目录 1. 需求 根据产品大大的需求描述: 对客户的京东旗舰店里的订…

php对接京东宙斯平台,利用京东联盟API获取自定义推广链接

本文将简单介绍下京东联盟、京东宙斯两个平台,以及如何利用京东宙斯平台的京东联盟API来快速获取自定义推广链接。 关于京东联盟 京东联盟(去官网看看)是一个CPS模式的营销平台,我们可以使用自己的网站放置联盟的推广链接为京东推销产品,当用户在我们的网站上点击了某个推广…

SpringBoot框架总结

一、SpringBoot框架的概念 1、传统框架的弊端 例如传统的SSM框架整合了MyBatis、Spring、SpringMVC框架,但其需要繁琐且重复的配置使程序员很是痛苦 2、SpringBoot框架 SpringBoot框架在传统框架的基础上对其进一步封装,只需要一些简单的配置&#x…

chatgpt赋能python:Python中最大公约数计算

Python中最大公约数计算 在Python编程中,求最大公约数是一个非常常见的需求。最大公约数一般简称为gcd,其定义为两个或多个整数的最大公因数。 在本篇文章中,我们将介绍Python中最常用的两种计算gcd的方法,并深入讲解它们的实现…

M7650DNF 打印机 word打印时候提示手动进纸的解决方法

两个地方需要设置,光一个地方设置不够:

东芝2323AM复印机双面打印设置方法

东芝DP-2323AM打印机,想要进行双面打印,到底应该如何设置呢?自动双面的话又该如何操作呢?这样就可以很好的解放双手了。 首先我们需要安装好完整的复印机驱动及应用程序 1、点击屏幕左下角的“开始”菜单,选择“打印机…

wps计算机打印双面输出,WPS轻松办公—-文档双面打印的两种方法

大家好,我们在利用,WPS文字,进行日常办公室经常需要运用到双面打印的功能,但是有些打印机不支持双面打印,需要手动进行双面打印,有的需要打印部分文档,有的需要打印全部文档,那么这两…

M7206手动进行双面打印步骤

一般以PDF文件格式打印(若为word文件,则先另存为PDF,并检查排版等细节问题,再行打印) 第一遍,打印正面: 打开文档,点击“打印”进入打印预览。“选择打印机”确认打印机是否已正常…

标签打印软件如何输出双面打印的文档

现在印刷行业使用的设备越来越先进,其中打印彩色功能、打印奇/偶数页已经是比较常见的设置,而且现在一些专业的打印设备支持打印双面的文档,那么我们在制作标签文件时,如何输出双面打印的文档呢,下面就来详细看一下&am…

设置手动双面打印_双面打印文档,你会吗?学会这几招,自动双面打印问题轻松解决...

在办公中打印耗材是非常昂贵的,所以为了尽量节省纸张,我们往往会将一张纸正面和反面都用上(双面打印)。毕竟支持自动双面打印的打印机很少,大多数情况下的打印机都是不支持双面打印的,这个时候我们就必须来手动设置双面打印了。 0…

Word 2007~2010手动双面打印设置

(类似于2003及之前版本中的背面逆序) 安装好word之后最需要设置的有:改写模式、打印选项、输入法控制处于活动状态。 在用word2003时,为了使手动双面打印的最终结果是正序的,而且打印背面时不用整理纸张次序&#xff0…

双面打印无效选择了文件服务器,记得要收藏!如何手动完成双面打印文档

【中关村在线办公打印频道原创】打印机不像手机电脑一样属于消费类电子产品,作为小众的办公设备,很多人在首次使用时会遇到不少小问题,就比如下面这位处女座朋友,收入一台打印机,没有自动双面功能,自己浪费…

wps计算机打印双面输出,在wps中双面打印的方法步骤详解

我们在打印word文档的时候往往都会使用到双面打印,那么今天小编教你怎么在wps中双面打印。希望对你有帮助! WPS双面打印的步骤 首先点击wps上的文字选项。找到打印按钮。点击打开之后,会跳出这样一个页面。 PS双面打印的步骤图1 页面内&#…

wps计算机打印双面输出,如何在电脑wps软件内设置双面打印

如何在电脑wps软件内设置双面打印 腾讯视频/爱奇艺/优酷/外卖 充值4折起 当我们在使用电脑的时候,可以使用wps软件内进行文档的编辑操作,那么文档编辑结束后需要对其进行打印的话,应如何设置双面打印呢?接下来就由小编来告诉大家。 具体如下: 1. 第一步,打开电脑中要进行…

打印机手动打印双面的防止顺序

经过一系列浪费大量墨水和纸张的测试以后,得到以下经验: 文章目录 1. 将打印的文档转换成PDF后点击打印2. 先选择打印奇数页面,不勾选逆序打印。3. 打印完成后,如果总页数为奇数,那么抽掉最后一页。如果是偶数则不用。…