如何在Linux上使用Echo命令
这 回声
该命令非常适合将格式化的文本写入终端窗口。而且它不必是静态文本。它可以包括外壳程序变量,文件名和目录。您还可以重定向echo以创建文本文件和日志文件。遵循此简单指南以了解操作方法。
回声重复您告诉它重复的内容
宙斯喜欢离开奥林匹斯山与美丽的仙女结伴。在一次旅行中,他告诉一个叫Echo的山若虫,如果她的妻子赫拉(Hera)跟着他的话,要杀死他。赫拉确实来找宙斯,而回声竭尽所能让赫拉保持对话。最终,赫拉发脾气并诅咒可怜的回声,因此她只重复别人说的最后一句话。赫拉在追赶宙斯时对宙斯所做的事情是任何人的猜测。
那几乎是 回声
生活中很多。它重复了被告知要重复的内容。这是一个简单的功能,但至关重要。没有 回声
,例如,我们将无法从shell脚本中获得可见的输出。
虽然没有太多的风吹草动,但很有可能 回声
具有某些您不了解或忘记的功能。
回声?回声!
大多数Linux系统提供两种版本的 回声
。 Bash外壳有其自己的 回声
内置在其中,并且有一个二进制的可执行版本 回声
也一样
通过使用以下命令,我们可以看到两个不同的版本:
输入回声
回声在哪里
这 类型
command告诉我们作为参数传递给它的命令是内置的shell,二进制可执行文件,别名还是函数。它向我们报告 回声
是内置的shell。
找到答案后, 类型
停止寻找其他比赛。因此,它不会告诉我们系统中是否存在其他具有相同名称的命令。但是它确实告诉我们它首先找到哪个。这就是我们发出该命令时默认使用的命令。
这 哪里
command会寻找二进制可执行文件,源代码和手册页,作为我们作为命令行参数传递给它的命令。它不寻找shell内置程序,因为它们没有单独的二进制可执行文件。它们是Bash可执行文件不可或缺的一部分。
这 哪里
命令报告 回声
是位于 /箱
目录。
使用该版本的 回声
您需要通过在命令行上提供可执行文件的路径来显式调用它:
/ bin / echo --version
内置的shell不知道 - 版本
命令行参数是,它只是在终端窗口中重复它:
回声-版本
此处显示的示例均使用默认版本的 回声
,在Bash shell中。
将文字写入终端
要将简单的文本字符串写入终端窗口,请键入 回声
以及您要显示的字符串:
回声我叫戴夫。
为我们重复了这段文字。但是,当您进行实验时,您很快就会发现事情可能会变得稍微复杂一些。看这个例子:
echo我叫Dave,我是一个怪胎。
终端窗口显示一个>
签名并坐在那里,等待。 Ctrl + C将使您返回命令提示符。那里发生了什么?
“我”一词中的单引号或单引号引起了混淆 回声
。它将单引号解释为文本中被引号部分的开头。由于它没有检测到结尾的单引号,回声
在等待更多的输入。它期望进一步的输入包括它正在等待的缺少单引号。
要在字符串中包含单引号,最简单的解决方案是将整个字符串用双引号引起来:
echo“我叫Dave,我是个极客。”
用双引号引起来的文字是很好的一般建议。在脚本中,它清楚地分隔了您要传递给的参数 回声
。这使阅读和调试脚本变得更加容易。
如果要在文本字符串中包含双引号字符怎么办?这很简单,只需加一个反斜杠 \
在双引号前面(它们之间没有空格)。
回声“我叫戴夫,我是一个“怪胎”。
这将“ geek”一词用双引号括起来。我们将看到更多这些 反斜杠转义 字符。
将变量与echo一起使用
到目前为止,我们已经在终端窗口中编写了预定义的文本。我们可以将变量与 回声
产生更具动态性的输出,并通过shell为我们插入值。我们可以使用以下命令定义一个简单的变量:
my_name =“戴夫”
称为 我的名字
已经被创造了。已为其分配了文本“ Dave”的值。我们可以在传递给的字符串中使用变量名 回声
,该变量的值将被写入终端窗口。你必须放一个美元符号 $
在变量名前面让 回声
知道这是一个变量。
有一个警告。如果您将字符串用单引号引起来 回声
将按字面意义对待一切。拥有变量 价值 显示,而不是 名称 的变量,请使用双引号。
echo'我的名字是$ my_name'
echo“我的名字是$ my_name”
适当地,值得重复一遍:
- 使用 单身的 用引号引起的文本将被写到终端窗口中 文字 时尚。
- 使用双倍的 引号导致变量被解释(也称为变量扩展),并且 价值 被写入终端窗口。
有关的:如何在Bash中使用变量
将命令与echo一起使用
我们可以使用以下命令 回声
并将其输出合并到写入终端窗口的字符串中。我们必须使用美元符号 $
就像命令是一个变量一样,将整个命令用括号括起来。
我们将使用date命令。提示之一是,在与以下命令一起使用之前,请先单独使用该命令 回声
。这样,如果命令的语法有问题,请先识别并更正它,然后再将其包含在 回声
命令。然后,如果 回声
该命令无法满足您的预期,您将知道问题一定出在 回声
语法,因为您已经证明了该命令的语法。
因此,请在终端窗口中尝试以下操作:
日期+%D
而且,满意于我们从date命令中获得了期望,我们将其集成到了 回声
命令:
echo“今天的日期是:$(date +%D)”
请注意,该命令位于括号和美元符号内 $
在第一个括号之前。
用回声格式化文本
这 -e
(启用反斜杠转义)选项使我们可以使用一些反斜杠转义的字符来更改文本的布局。这些是我们可以使用的反斜杠转义字符:
- \一种:警报(历史上称为BEL)。这将生成默认的警报声音。
- \ b:写一个退格字符。
- \C:放弃任何进一步的输出。
- \ e:写一个转义字符。
- \F:编写换页符。
- \ n:写一个新行。
- \ r:写入回车符。
- \ t:写一个水平制表符。
- \ v:写入垂直制表符。
- \\:写一个反斜杠字符。
让我们使用其中的一些,看看它们的作用。
echo -e“这是一长行文字\ ns跨越三行\ nwith \ ttabs \ ton \ t \ tthird \ tline”
文字会被换成新行,我们在其中使用了 \ n
字符,并在其中使用了 \ t
人物。
echo -e“这里\ vare \ vvertical \ vtabs”
如 \ n
换行符,垂直制表符 \ v
将文本移到下面的行。但是,与\ n
换行符 \ v
垂直标签不会在第0列开始新行。它使用当前列。
这 \ b
退格字符将光标移回一个字符。如果有更多文本要写入终端,则该文本将覆盖前一个字符。
回声-e“ 123 \ b4”
“ 3”被“ 4”覆盖。
这 \ r
回车符的原因回声
返回到当前行的开头,并从第0列开始写入任何其他文本。
回声-e“ 123 \ r456”
“ 123”字符被“ 456”字符覆盖。
这 \一种
警报字符将产生可听见的“哔哔”声。它使用当前主题的默认警报声音。
echo -e“发出哔声\ a”
这 -n
(无换行符)选项不是反斜杠转义的序列,但它确实会影响文本布局的外观,因此我们将在此处进行讨论。它可以防止 回声
从在文本末尾添加换行符。命令提示符直接出现在写入终端窗口的文本之后。
echo -n“没有最终的换行符”
在文件和目录中使用echo
您可以使用 回声
作为一种穷人的版本 ls
。使用时,您的选择很少而且相差很远 回声
像这样。如果您需要任何一种保真度或精细控制,最好使用 ls
及其众多选择。
此命令列出当前目录中的所有文件和目录:
回声*
此命令列出名称以“ D”开头的当前目录中的所有文件和目录:
回声D *
此命令列出当前目录中的所有“ .desktop”文件:
回声* .desktop
是的。这不是玩 回声
的长处。用 ls
.
回显写入文件
我们可以重定向输出 回声
并创建文本文件或写入现有文本文件。
如果我们使用 >
重定向运算符,如果文件不存在,则创建该文件。如果文件确实存在,则输出 回声
在文件的开头添加,覆盖以前的所有内容。
如果我们使用 >>
重定向运算符,如果文件不存在,则创建该文件。来自的输出 回声
被添加到文件的末尾,并且不会覆盖文件的任何现有内容。
回声“创建一个新文件。” > sample.txt
回显“添加到文件”。 >> sample.txt
猫sample.txt
第一个命令将创建一个新文件,并将文本插入其中。第二个命令在文件底部添加一行文本。这 猫
命令将文件的内容显示到终端窗口。
当然,我们可以包含变量,以将一些有用的信息添加到文件中。如果文件是日志文件,则可能需要添加时间戳。我们可以使用下一个命令来做到这一点。
请注意参数的单引号 日期
命令。它们可以防止将参数之间的空格解释为参数列表的末尾。他们确保将参数传递给日期
正确地。
回显“日志文件已开始:$(date +'%D%T')”> logfile.txt
猫logfile.txt
我们的日志文件是为我们创建的, 猫
向我们展示了datestamp和timestamp均已添加到其中。
有关的:什么是Linux上的stdin,stdout和stderr?
那是回声的曲目
一个简单的命令,但是必不可少的。如果不存在,就必须发明它。
毕竟,宙斯的恶作剧起到了一些作用。