Linux基础命令-echo输出信息

2023-11-16

文章目录

前言

一、echo命令介绍

二、命令语法及参数

 三、参考实例

总结


前言

         初学linux都会接触到这个echo命令,因为这个echo的用处实在太大了,不管说日常使用上还是写shell脚本中,都是需要用到的;echo命令可以输出用户要显示在屏幕上的信息、显示环境变量的值、搭配重定向还能写入信息,还能用来判断上一条命令的对错,一起看看吧。

一、echo命令介绍

        echo是用于终端设备上输出指定的字符串信息或显示变量的值的命令,能够给用户一些简单的提醒信息,也可以讲输出的指定字符串内容同管道符一起传递给后续命令作为标准输入信息再来进行二次处理,又或者同输出重定向一起操作,将信息直接写入到文件中。

小提示:如需提取变量值,需在变量名称前加入$符号做提取,变量名称一般均为大写形式。

二、命令语法及参数

1)通过用--help查看echo命令,发现不是想得到的信息,其实是因为echo是内置命令,所以help要写在命令前面。

语法:echo 【参数】字符串/变量

[root@localhost ~]# echo --help
--help
[root@localhost ~]# help echo
echo: echo [-neE] [参数 ...]
    将参数写到标准输出。
    
    在标准输出上显示 ARG 参数后跟一个换行。
    
    选项:
      -n	不要追加换行
      -e	启用下列反斜杠转义的解释
      -E	显式地抑制对于反斜杠转义的解释
    
    `echo' 对下列反斜杠字符进行转义:
      \a	警告(响铃)
      \b	退格
      \c	抑制更多的输出
      \e	转义字符
      \f	格式提供
      \n	换行
      \r	回车
      \t	横向制表符
      \v	纵向制表符
      \\	反斜杠
      \0nnn	以 NNN (八进制)为 ASCII 码的字符。 NNN 可以是
    	0到3个八进制数字
      \xHH	以 HH (十六进制)为值的八比特字符。HH可以是
    	一个或两个十六进制数字

可以看到的是echo命令是可以对字符信息转义的,这里需要加上echo -e的参数才行。

2)常用参数

-n 不输出结尾的换行符
-e “\a” 发出警告音
-e “\b” 删除前面的一个字符
-e “\c” 结尾不加换行符
-e “\f” 换行,光标仍停留在原来的坐标位置
-e “\n” 换行,光标移至行首
-e “\r” 光标移至行首,但不换行
-E 禁止反斜杠转义,与-e参数功能相反

 三、参考实例

1)将内容输出到屏幕上

[root@localhost ~]# echo "hello world"
hello world

2)内容不进行换行,可以看到内容与第二行之间没有换行。

[root@localhost ~]# echo -n "hello world"
hello world[root@localhost ~]# 

3)使用-E参数,加上了转义的参数没有什么变化

[root@localhost ~]# echo -E "hello world\tthis is linux"
hello world\tthis is linux
[root@localhost ~]# echo -e "hello world\tthis is linux"
hello world	this is linux

4)输出环境变量的内容,若加了转义符\会发现echo 不输出它原有的信息。

[root@localhost ~]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
[root@localhost ~]# echo $HISTSIZE
1000

[root@localhost ~]# echo $USER
root
[root@localhost ~]# echo \$USER
$USER

要查看系统中有哪些环境变量可以用env命令

[root@localhost ~]# env
XDG_VTNR=1
SSH_AGENT_PID=2070
XDG_SESSION_ID=1
HOSTNAME=localhost.localdomain
IMSETTINGS_INTEGRATE_DESKTOP=yes
VTE_VERSION=5204
TERM=xterm-256color
SHELL=/bin/bash
XDG_MENU_PREFIX=gnome-
HISTSIZE=1000
......
COLORTERM=truecolor
XAUTHORITY=/run/gdm/auth-for-root-FTjRUg/database
_=/usr/bin/env

5)echo配合重定向一起使用,表示写入信息到文件中。

[root@localhost ~]# echo "hello world" > file.txt
[root@localhost ~]# cat file.txt 
hello world

6)如果不清楚上一条命令执行是否成功,可以通过$?确认,正确为0,有问题的为非0值。

[root@localhost ~]# ls
anaconda-ks.cfg  file.txt  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@localhost ~]# echo $?
0
[root@localhost ~]# sl
bash: sl: 未找到命令...
相似命令是: 'ls'
[root@localhost ~]# echo $?
127

7)echo输出带有换行符的内容

[root@localhost ~]# echo -e "apache\nphp\nmysql"
apache
php
mysql

8)echo -e 其他反斜杠字符用法

[root@localhost ~]# echo -e "\rhello world"     #-r光标移至行首,不换行
hello world
[root@localhost ~]# echo -e "he\rllo world"
llo world
[root@localhost ~]# echo -e "hello world\a"     #发出警告
hello world
[root@localhost ~]# echo -e "hello\b world"     #-b删除前一个字符
hell world
[root@localhost ~]# echo -e "hello\f world"     #换行,且光标停留在原来的坐标位置
hello
      world
[root@localhost ~]# echo -e "hello wor\tld"
hello wor	ld
[root@localhost ~]# echo -e "hello wor\fld"
hello wor
         ld
[root@localhost ~]# echo -e "hello world\c"     #结尾不加换行符
hello world[root@loc

总结

        echo的参数并不是很多,还是值得去记一记和了解其他更多的用法,学习命令最重要就是要记住用法和常用参数,俗话说好记性不如烂笔头,多敲亦能熟能生巧。

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

Linux基础命令-echo输出信息 的相关文章

  • 如何成功使用RDAP协议代替whois

    我对新的 RDAP 协议有点困惑 也不知道何时进一步追求它有意义 在我看来 每个人都同意它是 whois 的继承者 但他们的数据库似乎是空的 在 ubuntu 上我尝试了 rdapper nicinfo 甚至他们的 RESTful API
  • 伊迪德信息

    重新定义问题 有什么方法可以获取所连接显示器的序列号吗 我想收集显示器的Eid信息 当我使用 logverbose 选项运行 X 时 我可以从 xorg 0 log 文件中获取它 但问题是 如果我切换显示器 拔出当前显示器 然后插入另一个显
  • 无法执行'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
  • Linux 中热插拔设备时检测设备是否存在

    我正在运行 SPIcode http lxr free electrons com source drivers spi spi omap2 mcspi c在熊猫板上 我想知道其中的哪个功能code http lxr free electr
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • 如何以编程方式从Linux中的进程名称获取进程ID

    在我的项目中 我们使用 ACE 自适应通信环境 中间件来编写可在 Windows 和 Linux 上运行的独立于操作系统的代码 要求是从进程名称中获取进程 ID 由于 ACE 不支持这一点 因此我们必须使用特定于平台的宏来分离 Window
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • 无需 cron 在后台发送邮件

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

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • arm-linux-gnueabi 编译器选项

    我在用 ARM Linux gnueabi gcc在 Linux 中为 ARM 处理器编译 C 程序 但是 我不确定它编译的默认 ARM 模式是什么 例如 对于 C 代码 test c unsigned int main return 0x
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte
  • ansible 重新启动 2.1.1.0 失败

    我一直在尝试创建一个非常简单的 Ansible 剧本 它将重新启动服务器并等待它回来 我过去在 Ansible 1 9 上有一个可以运行的 但我最近升级到 2 1 1 0 并且失败了 我正在重新启动的主机名为 idm IP 为 192 16
  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh

随机推荐

  • plsql 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致

    plsql 登录后提示 Database character set AL32UTF8 and Client character set ZHS16GBK are different Character set conversion may
  • Qt信号槽连接方式源码解读

    前言 Qt的五 四 种连接方式 在上一篇已经讲明 本篇主要分析在源码上是如何实现这几种连接方式的 本次源码为Qt 5 15 2 搞懂务必认真阅读最后添加注释后的代码 connect时会做什么 已知connect是可以实现一个信号连接多个槽的
  • ORT执行推理如何指定device编号

    法1 在执行推理前运行命令指定卡号 如 export CUDA VISIBLE DEVICES 1 python test py ox resnet50 16 fp32 说明 编号从0开始 通过上面的方式指定后 推理任务会在第2张卡中运行
  • window 服务器不稳定,服务器Windows系统突发情况的解决办法

    服务器Windows系统现在还是大部分的站长的选择 有很多用户是使用Windows作为网站服务器的系统 今天小编对于服务器Windows系统在维护过程中出现的几种突发情况 来讲讲解决办法 1 终端协议错误 如果用记事本或其他编辑器在远程终端
  • lambda 函数完美使用指南

    来源 萝卜大杂烩 今天我们来学习 Python 中的 lambda 函数 并探讨使用它的优点和局限性 什么是 Python 中的 Lambda 函数 lambda 函数是一个匿名函数 即 没有名称定义 它可以接受任意数量的参数 但与普通函数
  • 浅拷贝和深拷贝的区别

    浅拷贝 Shallow Copy 和深拷贝 Deep Copy 是两种复制对象的方式 它们之间的主要区别在于复制过程中是否会复制对象内部的引用类型数据 浅拷贝 Shallow Copy 浅拷贝仅复制了对象本身以及对象内部的基本数据类型 如i
  • 医学图像2D/3D可视化 ITK-SNAP软件使用

    软件下载链接 ITK SNAP Home 1 导入医学图像 nii gz文件 File gt Open Main Image 点击 Browse 切记不能有中文路径 gt Next 2 载入相应的分割图数据 nii gz文件 Segment
  • Android学习笔记——归纳整理

    目录 一 Android系统架构 二 Actvity相关 2 1基础相关 2 2 Intent相关 2 2 1 Intent的组成 2 2 2 显式Intent 2 2 3 隐式Intent 2 2 4 Intent属性 2 2 5 Int
  • Spring 单元测试中如何进行 mock

    我们在使用 Spring 开发项目时 都会用到依赖注入 如果程序依赖了外部系统或者不可控组件 比如依赖数据库 网络通信 文件系统等 我们在编写单元测试时 并不需要实际对外部系统进行操作 这时就要将被测试代码与外部系统进行解耦 而这种解耦方法
  • objects365数据集下载

    链接 https pan baidu com s 1QiWm8hCJus3LstZkz6Mzdw 提取码 wmrx
  • MySQL的索引和事务

    一 索引 一 索引概念 索引是一种特殊的文件 包含数据库中所有记录的引用 可以对表中的一列或多列创建索引 并指定索引的类型 存储引擎 每种索引在不同的存储引擎中的实现都有可能不同 索引类似数组的下标 通过下标拿到数组中的数据是很快的 同样通
  • 字符串右移n位

    题目 实现字符串右移几位 即 abcd 移两位变 cdab 思路 申请一个与待移位同样大小的数组 用来保存移位后的字符串 通过公式计算出简化的移位数 得到某字符移位后的新位置后 就将其字符值存放到新数组的对应位置 循环第3步 直至检测到字符
  • 【JVM】JVM基础知识:常量池、类加载、JVM内存模型、对象的创建过程

    前言 讲一下大概的内容 类加载 JVM内存模型 对象的创建 垃圾回收 JVM调优 入门 最近抽了时间学了一直都很想学的 JVM 之前也学过一点 也发布过一些零散的文章 但这篇文章会更加全面 学完这篇文章就足以应对有关 JVM 的面试 如果遇
  • java实现高斯赛德尔算法解线性方程组

    package linear equation import java util Scanner 使用高斯赛德尔迭代法求解线性方程组 public class Gauss Seidel Iterate 求下三角 private static
  • nodejs如何添加html文件上传,通过nodejs实现文件的上传

    通过nodejs实现文件的上传 主要内容 本文将用来讲述如何通过nodejs进行文件上传 将会涉及到以下知识点 通过express模块进行服务器的搭建 通过multer模块将上传的文件保存到指定目录 通过fs path模块将文件改名 添加后
  • SGMII协议解析

    什么是SGMII 先说什么是GMII MII MII是ethernet协议里面MAC层和PHY层之间的接口标准 MII是4bits的数据位宽 支持10 100M的数据传输 GMII前面G表示Gigabit 代表支持1000M的传输速率 需要
  • conda环境中安装1秒安装秘籍

    无论是pip或者mim安装指令 只需要加上一个参数就能1秒安装完成 pip install opencv python i https mirror baidu com pypi simple 体验完后 点个赞吧
  • SpringBoot学习(三)——SpringBoot的配置

    一 入口类 通常而言 Spring Boot都会拥有一个名为 Application的入口类 如FirstApplication 而该入口类中会有一个main方法 这个main方法起始就是一个标准的Java应用的入口方法 在main方法中使
  • Clark变换和Park变换在三相系统和单相系统中的应用

    1 引言 Clark变换和Park变换在三相系统中应用广泛 并且在单相系统中也有应用 但是以往的资料都是仅分析单相的坐标变换或者三相的坐标变换 并没有总结三相和单相的联系 本文将以坐标变换矩阵为载体 分析坐标变换在单相和三相系统中的应用 2
  • Linux基础命令-echo输出信息

    文章目录 前言 一 echo命令介绍 二 命令语法及参数 三 参考实例 总结 前言 初学linux都会接触到这个echo命令 因为这个echo的用处实在太大了 不管说日常使用上还是写shell脚本中 都是需要用到的 echo命令可以输出用户