IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 分享Linux常见命令echo命令代码实现 -> 正文阅读

[系统运维]分享Linux常见命令echo命令代码实现

Linux 中的 echo 命令用于显示作为参数传递的文本/字符串行。 这是一个内置命令。我们在写shell脚本shell 脚本和批处理文件,用于将状态文本输出到屏幕或文件。echo命令比较基础,但是功能还比较丰富。在本篇文章中,您将了解在 Linux 中使用 echo 命令的所有不同方式。

echo命令语法

Linux 中的 echo 命令用于显示用户提供的字符串。

echo [option] [string]

例如,我们使用自己实现的echo命令打印 Hello, World! 作为输出:

在这里插入图片描述
除了基本用法,还可以配合一些选项使用。

  • echo命令选项:

使用 --help 参数列出所有可用的 echo 命令选项:

在这里插入图片描述
注意:–e 在这里启用反斜杠转义的解释。

  • \b

它删除文本之间的所有空格

echo -e “Are \byou \bok”

在这里插入图片描述

  • \c

使用退格解释器“-e”抑制尾随的新行以继续而不发出新行。

echo -e “Are \cyou ok”
在这里插入图片描述
在上面的例子中, \c 之后的文本不会被打印出来并且省略了尾随的新行。

  • \n

此选项从使用它的位置创建新行。

.echo -e “Are \nyou \nok”

在这里插入图片描述

  • \t

此选项用于创建水平制表符空间。

echo -e “Are \tyou \tok”

在这里插入图片描述

  • \r

使用退格解释器‘-e’回车以在输出中指定回车。

echo -e “Are \ryou ok”

在这里插入图片描述

在上面的示例中,不会打印 \r 之前的文本。

  • \v

此选项用于创建垂直制表符空间。

echo -e “Are \vyou \vok”

在这里插入图片描述

  • echo *

该命令将打印所有文件/文件夹,类似于 ls 命令。

echo *

在这里插入图片描述
echo 输出颜色文本

使用 ANSI 转义序列可以更改输出文本的颜色:

echo -e ‘\033[1;37mWHITE’
echo -e ‘\033[0;30mBLACK’
echo -e ‘\033[0;31mRED’
echo -e ‘\033[0;34mBLUE’
echo -e ‘\033[0;32mGREEN’

在这里插入图片描述

可以使用以上命令输出彩色的文本。

echo 执行命令

如果我们想要输出uptime命令执行后的结果,我们可能会使用如下命令:

在这里插入图片描述
对uptime命令不熟悉的,可以参考这篇文章Linux下系统运行时间(uptime)命令使用及代码实现

显示变量值

echo 命令还用于将变量值显示为输出。 例如,要显示当前用户的名称,请使用:

echo $USER

在这里插入图片描述

显示命令输出

echo 命令允许您在输出中包含其他命令的结果:

echo "[string] $([command])

例如,使用以下命令列出主目录中的所有文件和目录:

echo “Show current directory path: $(pwd)”

在这里插入图片描述
写入文件

使用 > 或 >> 将字符串包含在文件的 echo 命令中,而不是将其显示为输出:

echo -e ‘Hello, World! \nThis is Minger!’ >> test.txt

在这里插入图片描述
echo 简单实现

#include <stdio.h>
#include <assert.h>
#include <sys/types.h>
#include <ctype.h>

/* 十六进制字符转换为整数 */
static int hextobin (unsigned char c)
{
	switch (c)
	{
		default: return c - '0';
		case 'a': case 'A': return 10;
		case 'b': case 'B': return 11;
		case 'c': case 'C': return 12;
		case 'd': case 'D': return 13;
		case 'e': case 'E': return 14;
		case 'f': case 'F': return 15;
	}
}


int main(int argc, char **argv)
{
	bool do_v9 = false;
	bool display_return = true;

	--argc;
	++argv;
  
	while (argc > 0 && *argv[0] == '-')
	{
		char const *temp = argv[0] + 1;
		size_t i;

		/* 如果看起来我们正在处理选项,那么请确保
		所有指定的选项实际上都是有效的。 否则,
		字符串应该只是回显。  */

		for (i = 0; temp[i]; i++)
			switch (temp[i])
			{
				case 'e': 
				case 'E': 
				case 'n':
					break;
				default:
					goto just_echo;
			}

		if (i == 0)
		goto just_echo;

		/* temp 中的所有选项都是 ECHO 的有效选项。处理它们。  */
		while (*temp)
			switch (*temp++)
			{
				case 'e':
					do_v9 = true;
				break;

				case 'E':
					do_v9 = false;
				break;

				case 'n':
					display_return = false;
				break;
			}

		argc--;
		argv++;
	}

just_echo:

	if (do_v9)
	{
		while (argc > 0)
		{
			char const *s = argv[0];
			unsigned char c;

		while ((c = *s++))
		{
			if (c == '\\' && *s)
			{
				switch (c = *s++)
				{
					case 'a': c = '\a'; break;
					case 'b': c = '\b'; break;
					case 'c': return 0;
					case 'e': c = '\x1B'; break;
					case 'f': c = '\f'; break;
					case 'n': c = '\n'; break;
					case 'r': c = '\r'; break;
					case 't': c = '\t'; break;
					case 'v': c = '\v'; break;
					case 'x':
					{
						unsigned char ch = *s;
						
						if (! isxdigit (ch))
							goto not_an_escape;
						
						s++;
						c = hextobin(ch);
						ch = *s;
						
						if (isxdigit (ch))
						{
							s++;
							c = c * 16 + hextobin (ch);
						}
					}
					break;
					case '0':
						c = 0;
						
						if (! ('0' <= *s && *s <= '7'))
							break;
						
						c = *s++;
					break;
					case '1': case '2': case '3':
					case '4': case '5': case '6': case '7':
						c -= '0';
						if ('0' <= *s && *s <= '7')
							c = c * 8 + (*s++ - '0');
						
						if ('0' <= *s && *s <= '7')
							c = c * 8 + (*s++ - '0');
					break;
					case '\\': break;
					
					not_an_escape:
					default:  
						putchar ('\\'); 
					break;
				}
			}
			putchar (c);
		}

		argc--;
		argv++;
		if (argc > 0)
			putchar(' ');

		}
	}

	else
    {
		while (argc > 0)
        {
			fputs(argv[0], stdout);
			argc--;
			argv++;
			
			if (argc > 0)
				putchar (' ');
        }
    }

	if (display_return)
		putchar ('\n');

	return 0;
}

总结

echo 命令是一个内置的 Linux 功能,可将参数打印为标准输出。 echo 通常用于将文本字符串或命令结果显示为消息。

欢迎关注微信公众号【程序猿编码】,欢迎添加本人微信号(17865354792)交流学习。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 11:55:18  更:2021-08-08 11:56:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 11:49:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码