【Linux】echo命令用法详解

2023-10-31

作者:柒号华仔
个人主页:欢迎访问我的主页
个人信条:星光不问赶路人,岁月不负有心人。
个人方向:专注于5G领域,同时兼顾其他网络协议,编解码协议,C/C++,linux等,感兴趣的小伙伴可以关注我,一起交流。


1. echo命令介绍

echo命令是脚本语言中的常用命令,作用相当于C语言里面的printf。在shell中,可以打印变量的值,或者输出指定的字符串,可以将结果写入到文件,也可以打印在终端。echo命令可以在显示器上显示一段文字,起到提示的作用,对于调试非常有帮助。

在终端输入help echo即可查看echo的命令详情:

在这里插入图片描述

2. 命令参数解释

字符 含义
-n 不自动换行
-e 解释转义字符
-E 不解释转义字符
\a 发出警告声
\b 转义后相当于按退格键(backspace) ,但前提是"\b"后面存在字符; “\b"表示删除前一一个字符,”\b\b" 表示删除前两个字符。
\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于echo -n;但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出。
\e escape,相当于 \033
\E 与\e相同
\f 换行,但下一行内容起始位置和上一行从\f处换行的位置对齐
\n 换行且光标移至行首
\r 换行字符,光标移至行首,输出\r后面的内容
\t 转以后表示插入tab,即横向制表符。
\v 换行,但下一行内容起始位置和上一行从\v处换行的位置对齐
\ \ 表示插入""本身。
\0nnn 插入nnn(八进制)所代表的ASCII字符
\xHH 插入HH(十六进制)所代表的ASCII数字

3. echo使用实例

echo命令使用方法较多,我们通过实例来列举常用用法,只要参考这些实例即可满足我们日常的编程和调试需要。

3.1 字符串输出

字符串输出到终端显示是最简单的用法。

echo 'Hello World'

在这里插入图片描述

3.2 单引号与双引号

echo后的单引号表示强引用,单引号里面是什么内容就输出什么,而双引号是弱引用,变量的值会代替变量名输出。
在这里插入图片描述

3.3 转义字符可用

当我们需要使用特殊转义字符时(特殊转义字符见上面命令参数详解表格),需要指定参数-e,格式为

echo -e 处理特殊字符

3.4 输出字符串带颜色

在打印log时,我们经常要突出显示一些提示文字,比如Error用红色,Waring用黄色,便于第一时间发现问题。
输出文字带颜色需要结合-e选项和“\033”一块使用,格式为

echo –e "\033[颜色m 字符串 \033[0m"

在这里插入图片描述

3.5 写入文件

以覆盖方式写入文件,写入语句会覆盖目标文件原有内容,保证文件保存的始终是最新内容。

echo "Hello World" > hello.txt

以追加方式写入文件,写入语句不会覆盖目标文件原有内容,只会追加在文件末尾。追加方式适用于记录运行log,便于后期问题分析。

echo "Hello World" >> hello.txt

两种写入方式区别在于指向符,>覆盖,>>追加。

3.6 输出时间

获取当前系统时间并输出,在打印Log时可以记下当前的系统时间,或者在编译程序时,可以记下编译时的系统时间,便于回溯和版本跟踪。

current_time=$(date "+%Y-&m-%d %H:%M:%S")
echo '['$current_time']'"Hello World" >> hello.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Linux】echo命令用法详解 的相关文章

  • Xenomai 中的周期性线程实时失败

    我正在创建一个周期性线程 它在模拟输出上输出方波信号 我正在使用 Xenomai API 中的 Posix Skin 和 Analogy 我使用示波器测试了代码的实时性能 并查看了方波信号 频率为 1kHz 的延迟 我应该实现 250us
  • 如何在 Linux x86_64 上模拟 iret

    我正在编写一个基于 Intel VT 的调试器 由于当 NMI Exiting 1 时 iret 指令在 vmx guest 中的性能发生了变化 所以我应该自己处理vmx主机中的NMI 否则 guest会出现nmi可重入错误 我查了英特尔手
  • linux下如何获取昨天和前天?

    我想在变量中获取 sysdate 1 和 sysdate 2 并回显它 我正在使用下面的查询 它将今天的日期作为输出 bin bash tm date Y d m echo tm 如何获取昨天和前天的日期 这是另一种方法 对于昨天来说 da
  • Linux 中的电源管理通知

    在基于 Linux 的系统中 我们可以使用哪些方法 最简单的方法 来获取电源状态更改的通知 例如 当计算机进入睡眠 休眠状态等时 我需要这个主要是为了在睡眠前保留某些状态 当然 在计算机唤醒后恢复该状态 您只需配置即可获得所有这些事件acp
  • 为什么 ld 无法从 /etc/ld.so.conf 中的路径找到库?

    我想添加 opt vertica lib64进入系统库路径 所以我执行以下步骤 1 添加 opt vertica lib64 into etc ld so conf 然后运行ldconfig 2 检查 bash ldconfig p gre
  • R 未获取用户库

    我有一个带 R 3 6 0 的 Fedora 30 系统 用户库设置在Renviron就像这个 R LIBS USER R LIBS USER R x86 64 redhat linux gnu library 3 6 事实上 它出现在交互
  • “grep -q”的意义是什么

    我正在阅读 grep 手册页 并遇到了 q 选项 它告诉 grep 不向标准输出写入任何内容 如果发现任何匹配 即使检测到错误 也立即以零状态退出 我不明白为什么这可能是理想或有用的行为 在一个程序中 其原因似乎是从标准输入读取 处理 写入
  • 如何从 Linux 命令行获取视频文件的分辨率(宽度和高度)?

    我一直在挖掘 mplayer mencoder 和 ffmpeg 文档 但我似乎无法想出anything 我对输出格式不是特别挑剔 因为我可以使用正则表达式将其拉出来 我只是似乎无法首先获取数据 Use ffprobe https ffmp
  • 无法仅在控制台中启动 androidstudio

    你好 我的问题是下一个 我下载了Android Studio如果我去 路径 android studio bin 我执行studio sh 我收到以下错误 No JDK found Please validate either STUDIO
  • 操作系统什么时候清除进程的内存

    进程在某些操作系统上成功或异常终止 操作系统何时决定擦除分配给该进程的内存 数据 代码等 在退出时或当它想为新进程分配内存时 这个清除内存分配过程在所有操作系统 winXP Win7 linux Mac 上都相同吗 据我了解 页表具有该进程
  • numpy 未定义符号:PyFPE_jbuf

    我正在尝试使用一百万首歌曲数据集 为此我必须安装 python 表 numpy cython hdf5 numexpr 等 昨天我设法安装了我需要的所有内容 在使用 hdf5 遇到一些麻烦之后 我下载了预编译的二进制包并将它们保存在我的 b
  • 如何用X11复制到剪贴板?

    使用 OS X 上的框架 我可以使用以下命令将 PNG 复制到粘贴板 在 C 中 显然我可以将 NSPasteboard 与 Cocoa 一起使用 include
  • php echo 不工作

    我的代码似乎不起作用 单选按钮出现 但旁边什么也没有 似乎 mysql fetch array 由于某种原因无法工作 因为我已经玩过代码并反复测试它以查找代码似乎遇到的位置出现问题并停止工作 有人可以告诉我出了什么问题吗 欢呼声我是新手 最
  • 无法执行'x86_64-conda_cos6-linux-gnu-gcc':没有这样的文件或目录(pysam安装)

    我正在尝试安装 pysam 执行后 python path to pysam master setup py build 这个错误的产生是 unable to execute x86 64 conda cos6 linux gnu gcc
  • 每个进程每个线程的时间量

    我有一个关于 Windows 和 Linux 中进程和线程的时间量子的问题 我知道操作系统通常为每个线程提供固定的时间量 我知道时间量根据前台或后台线程而变化 也可能根据进程的优先级而变化 每个进程有固定的时间量吗 例如 如果操作系统为每个
  • Linux shell 脚本:十六进制数字到二进制字符串

    我正在 shell 脚本中寻找一些简单的方法来将十六进制数字转换为 0 和 1 字符的序列 Example 5F gt 01011111 是否有任何命令或简单的方法来完成它 或者我应该为其编写一些开关 echo ibase 16 obase
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • 无需 cron 在后台发送邮件

    我想知道是否有一种方法可以运行 PHP 循环 以便在后台向订阅者发送几百封电子邮件 我的目标是格式化新闻通讯 单击发送 然后关闭浏览器或更改页面 当然 发送电子邮件的实际过程将在后台运行 不会因浏览器关闭而中断 我知道这可以通过 cron
  • 为什么 Linux 对目录使用 getdents() 而不是 read()?

    我浏览 K R C 时注意到 为了读取目录中的条目 他们使用了 while read dp gt fd char dirbuf sizeof dirbuf sizeof dirbuf code Where dirbuf是系统特定的目录结构
  • 如何查找连接到 AF_INET 套接字的客户端的 UID?

    有什么方法或类似的东西ucred for AF UNIX如果是AF INET插座 TCP在我的例子中 找出连接到我的套接字的客户端的UID 还有 proc net tcp但它显示了UID of the creator插座的而不是连接的cli

随机推荐

  • 图形学数学基础之基本蒙特卡罗尔积分(Monte Carlo Integration)

    作者 i dovelemon 日期 2017 07 29 来源 CSDN 主题 Monte Carlo Integration 引言 好久没有写博客了 最近一直在忙于工作 同时GLB库中关于PBR的渲染算法 一直卡住 无法实现下去 不过在这
  • dd大牛的《背包九讲》

    P01 01背包问题 题目 有N件物品和一个容量为V的背包 第i件物品的费用是c i 价值是w i 求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量 且价值总和最大 基本思路 这是最基础的背包问题 特点是 每种物品仅有一件 可以选
  • 【HCNP路由交换学习指南】学习笔记丨第07章 BGP

    07 BGP BGP 的基本概念 BGP 对等体关系类型 IBGP 水平分割原则 路由黑洞问题及 BGP 同步规则 路由通告 Router ID 报文类型及格式 Open 报文 Update 报文 Keepalive 报文 Notifica
  • PaddleOCR使用笔记之模型训练

    目录 简介 模型训练 步骤一 文本检测模型 detection 1 准备训练数据集 2 下载预训练模型 模型介绍 下载预训练模型 3 开始训练 断点训练 4 模型评估 5 模型测试 6 训练模型转inference模型 步骤二 文本识别模型
  • RabbitMQ保证消息的一致性解决方案

    RabbitMQ保证消息的一致性 一 采用confirm消息确认机制及return返回机制 确保消息发送成功 二 将队列以及消息设置持久化 保证rabbitmq突然宕机消息仍然存在 三 手动确认接收消息方式 消息处理失败拒收重回队列 1 y
  • 后端响应是否成功、信息、操作码响应前端及异常处理

    异常处理流程 1 自定义异常类型 2 自定义错误代码及错误信息 3 对于可预知的异常由程序员在代码中主动抛出 由SpringMVC统一捕获 可预知异常是程序员在代码中手动抛出本系统定义的特定异常类型 由于是程序员抛出的异常 通常异常信息比较
  • java反射(从认识到应用)-黑马笔记

    此文章是观看黑马雷哥关于Java反射的视频做的笔记 如有错请多指教 一 认识反射 反射在JavaAPI中的详解 说白了 反射就是 加载类 并允许以编程方式解剖类中的各种成分 成员变量 方法 构造器等 如图 二 反射还学什么 加载类 获取类的
  • 做题

    在一个文件中定义一个全局变量 n 主函数 main 在另一个文件中定义函数 fn1 在 main 中对 n 赋值 再调用 fn1 在 fn1 中也对 n 赋值 显示 n 最后的值 include using namespace std in
  • style对象和less/scss互相转换,驼峰转中横线,支持嵌套转换

    不知道有没有小伙伴在维护或重构前端项目时修改样式的时候遇到js style和less scss需要互相转换的问题 本人找网上没有比较完善的转换工具 要么嵌套不支持 要么兼容不好 于是自己写了一个 请大家参考 emotion style In
  • CSDN英雄大会之 SOA技术观感

    5号假装英雄去北京参加了CSDN技术英雄大会 见到了很多一直想见的同行高手还有编辑记者 这里就不一一列举了 只是从SOA中间件开发角度列一下相关的内容 1 IBM如下划分SOA与构件 SOA4类关键构件 基础构件WAS MQ 流程构件WPS
  • 设置一个FreemarkerExceptionHandler捕获freemarker页面上的异常

    在Freemarker页面中如果使用 userName 并且userName为空 那么Freemarker页面就会崩掉 需要设置默认值 userName 来避免对象为空的错误 同理 user userName 也应该写成这样 user us
  • WaveOut播放声音死锁问题原因

    1 首先我们复习下造成死锁的几个充要条件 1 互斥 互斥资源 只能被一个进程使用 2 不剥夺 非抢占式调度 不能强行抢用其他进程资源 3 请求和保持 占有着资源不释放 同时申请其他资源 4 环路等待 没什么可说的 在WaveOutReset
  • java.lang.IncompatibleClassChangeError: Found interface org.elasticsearch.common.bytes.BytesReferenc

    项目场景 再学谷粒商城时 练习elasticsearch时出现一下错误 问题描述 原因分析 提示 出现java lang IncompatibleClassChangeError Found interface org elasticsea
  • redis 由浅入深之 redis.conf配置文件

    是否以后台进程运行 默认为no 如果需要以后台进程运行则改为yes daemonize no 如果以后台进程运行的话 就需要指定pid 你可以在此自定义redis pid文件的位置 pidfile var run redis pid 接受连
  • 2021-04-09

    C 实现XN 2图灵机模拟 算法分析 代码实现 算法分析 1 首先需要完成数的进制转换 将二进制数转化成十进制数 如何转化呢 这里采用除二取余的方法 这种方法就是不断得到余数 放进数组arr 最后除以颠倒一下就行了 2 转换成拓展二进制编码
  • Leetcode刷题-522最长特殊序列II

    题目描述 给定字符串列表 strs 返回它们中最长的特殊序列 如果最长特殊序列不存在 返回 1 最长特殊序列定义 该序列为某字符串独有的最长子序列 即不能是其他字符串的子序列 s 的子序列可以通过删去字符串 s 中的某些字符实现 来源 力扣
  • 灰色预测原理及实例(附代码)

    灰色预测 引言 古人说 凡事预则立 不预则废 办任何事情之前 必须先调查研究 摸清情况 深思熟虑 有科学的预见 周密的计划 这样才能达到预期的成功 所谓预测 就是人们根据可获得的历史和现实数据 资料 运用一定的科学方法和手段 对人类社会 政
  • CSS文本设置超出2行显示省略号

    需求 如图所示 当居住地址字段太长超过2行时就显示 1 强制一行so easy div class line style 内容部分内容部分内容 div line white space nowrap 强制一行显示 overflow hidd
  • 快速入门

    之前正运动技术与大家分享了 运动控制器的固件升级 ZBasic程序开发 ZPLC程序开发 与触摸屏通讯和输入 输出IO的应用 运动控制器数据与存储的应用 运动控制器ZCAN EtherCAT总线的使用 示波器的应用 多任务运行的特点 运动控
  • 【Linux】echo命令用法详解

    作者 柒号华仔 个人主页 欢迎访问我的主页 个人信条 星光不问赶路人 岁月不负有心人 个人方向 专注于5G领域 同时兼顾其他网络协议 编解码协议 C C linux等 感兴趣的小伙伴可以关注我 一起交流 目录 1 echo命令介绍 2 命令