Linux echo命令(在終端輸出文本)

文章目錄

  • Linux Echo命令深度解析
    • 簡介
    • 命令語法
    • 常見選項
      • - `-n`:不輸出行尾的換行符,這意味著輸出后不會換到下一行。
      • - `-e`:啟用反斜杠轉義的解釋,允許使用特殊字符。
      • - `-E`:禁用反斜杠轉義的解釋(默認選項)。
    • 特殊字符支持(`-e`)
      • - `\n`:新行
      • - `\t`:水平制表符
      • - `\b`:退格(左移光標位置)(行為有點詭異)
      • - `\r`:回車(將光標移動到行的開頭)
      • - `\\`:反斜杠
      • - `\0NNN`:以八進制數NNN表示的字符
    • 使用示例
      • 基本輸出
      • 使用特殊字符
      • 避免換行
      • 復合輸出
    • 在腳本中的應用
    • 結論

Linux Echo命令深度解析

簡介

echo是Linux和Unix系統中常用的一個命令行工具,主要用于在終端輸出文本。該命令非常簡單,但是它在腳本編程和日常系統管理中扮演著重要的角色。

命令語法

echo命令的基本語法如下:

echo [選項] [字符串]

常見選項

echo命令提供了幾個選項來控制其行為,最常用的選項包括:

- -n:不輸出行尾的換行符,這意味著輸出后不會換到下一行。

- -e:啟用反斜杠轉義的解釋,允許使用特殊字符。

- -E:禁用反斜杠轉義的解釋(默認選項)。

特殊字符支持(-e

啟用-e選項后,echo支持以下轉義序列:

- \n:新行

在這里插入圖片描述

- \t:水平制表符

在這里插入圖片描述

- \b:退格(左移光標位置)(行為有點詭異)

正常用法:

在這里插入圖片描述
在這里插入圖片描述

其他:
在這里插入圖片描述

在你的示例中,當你試圖通過echo -e命令并使用退格字符\b刪除字符時,"我"這個字沒有被刪除,因為在很多終端和字符編碼中,中文字符被處理為寬字符,通常占用兩個字節。而\b退格字符通常只會刪除一個字節,所以在你嘗試刪除"我"這個字符時,它實際上只刪除了這個寬字符的一半,導致沒有完全刪除。你可以使用兩次退格字符來嘗試刪除一個中文字符,例如echo -e "我\b\b"。這樣應該能刪除整個字符。

兩個\b還刪不掉,要三個😂
在這里插入圖片描述

-b的行為其實不是刪除,而是左移光標位置:

在當前的終端環境中,\b退格符僅用于移動光標位置而不實際刪除已經打印的字符。這是一些終端和shell環境的常見行為。

在很多終端中,退格符\b只會將光標向左移動一個位置,而不會擦除任何字符。

在這里插入圖片描述

- \r:回車(將光標移動到行的開頭)

在這里插入圖片描述

- \\:反斜杠

在這里插入圖片描述

- \0NNN:以八進制數NNN表示的字符

在這里插入圖片描述

使用示例

基本輸出

echo "Hello, World!"

輸出:

Hello, World!

使用特殊字符

echo -e "第一行\n第二行"

輸出:

第一行
第二行

避免換行

echo -n "Hello, World!"

此命令輸出Hello, World!后不會換行。

在這里插入圖片描述

復合輸出

利用echo命令可以在腳本中用來顯示變量,或者結合管道和重定向操作:

# 顯示變量內容
user="linus"
echo "當前用戶為:$user"
# 重定向到文件
echo "保存這段文本到文件" > file.txt
# 結合管道使用
echo "hello 全部轉為大寫" | tr 'a-z' 'A-Z'

輸出:

當前用戶為:linus

并且file.txt文件中會包含文本保存這段文本到文件

最后一個命令會輸出全部轉為大寫

在這里插入圖片描述

在腳本中的應用

echo命令在shell腳本中極為常見,用于提供運行狀態的信息、錯誤消息、日志記錄等。

#!/bin/bash# 檢查文件是否存在
file_path="/path/to/file"
if [ -e "$file_path" ]; thenecho "$file_path 存在."
elseecho "$file_path 不存在."
fi

這個腳本檢查一個文件是否存在,并輸出相應的信息。

結論

盡管echo命令非常基礎,但它在日常Linux使用和腳本編程中發揮著關鍵作用。通過合理使用其提供的選項和特性,可以簡化和增強shell腳本的表達能力。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15130.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15130.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15130.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于地理坐標的高階幾何編輯工具算法(2)——相交面裁剪

文章目錄 工具步驟應用場景算法輸入算法輸出算法示意圖算法原理后處理 工具步驟 選中一個需要裁剪的面,點擊“相交面裁剪”工具,多選裁剪模板面,空格執行。 應用場景 常用于基于遙感影像的建筑物幾何面編輯。 算法輸入 一個待裁剪的面&a…

sqlserver的查詢(三)

目錄 10. group by(分組) 11. having(對分組后的信息過濾) 可能從這里開始,執行順序越來越顯得重要了!!! 10. group by(分組) 這個查詢相比前面會有一些困難; 格式:group by 字段的集合; 功…

Java進階學習筆記8——單繼承、Object類、方法重寫

Java 是單繼承的,Java中的類不支持多繼承,但是支持多層繼承。 Object類是所有類的父類。 Java不支持多類繼承: Java支持多層繼承: 反證法: Object類: Object類是java所有類的祖宗類,我們寫的任…

AI爆文寫作:我一般不告訴別人的爆文玩法:如何100%抄襲10W+的爆文標題,讓你也篇篇爆款

有現成的10w擺在眼前我們要做的就是,100%抄標題,以及內容重述。 具體操作步驟: 找到適合自己賬號選題的10w(微信看一看或者頭條)100%抄爆文的標題將這篇文章喂給Al,讓AI分析文章的寫法和主題根據提煉出來的寫法和主題&#xff0…

使用魚香肉絲一鍵安裝重新安裝ROS后mavros節點報錯,.so文件不匹配

解決方案: 1、寫在mavros相關軟件,共卸載7個包 sudo apt-get remove ros-melodic-mav*2、重新安裝mavros,共安裝10個包 sudo apt-get remove ros-melodic-mav*

每日AIGC最新進展(10):符號音樂生成SYMPLEX、新型圖像編輯數據集ReasonPix2Pix、角色一致性插畫生成、高級的風格個性化擴散模型

Diffusion Models專欄文章匯總:入門與實戰 SYMPLEX: Controllable Symbolic Music Generation using Simplex Diffusion with Vocabulary Priors http://arxiv.org/abs/2405.12666v1 本文介紹了一種新的符號音樂生成方法,名為SYMPLEX,它基于…

pod 庫發布腳本

repo_tag.sh 文件 #!/bin/zsh# 私有庫名稱 #PODNAME${PWD##*/} PODNAME"LBHorizontalCenterLayout"function obtain_git_tag {# 類似 "s.version 0.0.1"VERSION_STRINGgrep -E s.version.* ${PODNAME}.podspecTAGtr -cd "[0-9.]" <<&…

使用 JavaParser 解析代碼

[自用] 如何判斷出 java 代碼文本中一個方法的輸入參數個數以及類型。用結構體數組存儲遍歷信息&#xff0c;最后用一個方法實現打印。可以使用第三方庫。 如果是一個語句如何判斷這個語句中的局部變量個數和類型。那么該怎么實現呢&#xff1f; 要判斷 Java 代碼文本中一個方…

【電源專題】什么是層間短路(Rare Short),如何檢測?

層間短路發生的原因 一般線圈類制品是以漆包線纏繞導磁材料制造而成,漆包線是指外層披覆一層薄薄絕緣漆的銅線。我們常見的線圈類制品有: 電源變壓器、 高壓變壓器、 Switching Power 變壓器、 通訊變壓器、 脈沖變壓器、 環型變壓器、 電力傳輸變壓器、 音頻傳輸變壓器、 電…

k8s pvc pending waiting for first consumer to be created before binding

動態創建PV失敗且提示waiting for first consumer to be created before binding 問題現象 使用WaitForFirstConsumer的StorageClass創建PV失敗&#xff0c;PVC Event提示persistentvolume-controller waiting for first consumer to be created before binding。 問題原因 PV…

c# mysql 加鎖解鎖

c# mysql 加鎖解鎖 在C#中操作MySQL實現加鎖和解鎖&#xff0c;通常是通過執行特定的SQL語句來完成。MySQL支持表級鎖定和行級鎖定。以下是使用MySQL命令執行加鎖和解鎖的示例代碼&#xff1a; using MySql.Data.MySqlClient;// 連接字符串 string connStr "serverloca…

【QGIS入門實戰精品教程】5.3:CGCS2000轉Lambert投影

參考閱讀: 【GlobalMapper精品教程】081:WGS84/CGCS2000轉Lambert投影 文章目錄 一、加載實驗數據二、投影轉換三、批量投影轉換一、加載實驗數據 加載配套實驗數據,如下圖所示:圖層為長沙市范圍、長沙市酒店賓館分布點位、湖南省酒店分布點位矢量數據。 雙擊圖層,打開信…

網段與廣播域

ip地址與子網掩碼做與運算得到網絡號&#xff0c;得到的網絡號相同就是同一個網段&#xff0c;否則不是&#xff0c;跟他們在什么位置沒有任何關系 這里面pc3和前兩個pc雖然不在同一個網段&#xff0c;但是pc1發廣播包的時候&#xff0c;pc3也能收到&#xff0c;因為路由器的所…

Vue 安裝vue

1、官網安裝下載安裝nodejs 2、安裝完成后&#xff0c;通過命令查看版本,可以查看到版本 node -v npm -v 3、安裝Vue CLi npm install -g vue/cli 4、創建項目,vue create test 如果遇到報錯&#xff1a; ERROR Error: spawn yarn ENOENT Error: spawn yarn ENOENT at ChildP…

前端基礎入門三大核心之HTML篇:深入理解重繪與重排 —— 概念、區別與實戰演練

前端基礎入門三大核心之HTML篇&#xff1a;深入理解重繪與重排 —— 概念、區別與實戰演練 HTML渲染基礎回顧重繪與重排的概念重繪&#xff08;Repaint&#xff09;重排&#xff08;Reflow&#xff09; 區別與影響實戰示例&#xff1a;優化策略與代碼演示示例1&#xff1a;避免…

Dilworth 定理

這是一個關于偏序集的定理&#xff0c;事實上它也可以擴展到圖論&#xff0c;dp等中&#xff0c;是一個很有意思的東西 偏序集 偏序集是由集合 S S S以及其上的一個偏序關系 R R R定義的&#xff0c;記為 ( S , R ) (S,R) (S,R) 偏序關系&#xff1a; 對于一個二元關系 R ?…

用 vue3 + phaser 實現經典小游戲:飛機大戰

本文字數&#xff1a;7539字 預計閱讀時間&#xff1a;30分鐘 01 前言 說起小游戲&#xff0c;最經典的莫過于飛機大戰了&#xff0c;相信很多同學都玩過。今天我們也來試試開發個有趣的小游戲吧&#xff01;我們將從零開始&#xff0c;看看怎樣一步步實現一個H5版的飛機大戰&a…

C# 串口通訊之艱難排錯之路 —— system.ObjectDisposedException已關閉 Safe handle

今天寫了一個串口通訊掃碼槍驅動&#xff0c;程序運行后&#xff0c;不出意外的全線崩潰&#xff0c;開始了漫長的排查之旅&#xff0c;具體情況報錯如下&#xff1a; 解決未處理 System.ObjectDisposedException Message已關閉 Safe handle Sourcemscorlib ObjectName"&…

【pyspark速成專家】4_Spark之RDD編程2

目錄 四&#xff0c;常用PairRDD的轉換操作 五&#xff0c;緩存操作 四&#xff0c;常用PairRDD的轉換操作 PairRDD指的是數據為長度為2的tuple類似(k,v)結構的數據類型的RDD,其每個數據的第一個元素被當做key&#xff0c;第二個元素被當做value. reduceByKey #reduceByKey…

層次式架構設計理論與實踐

層次式體系結構概述 軟件體系結構為軟件系統提供了結構、行為和屬性的高級抽象&#xff0c;由構成系統的元素描述這些元素的相互作用、指導元素集成的模式以及這些模式的約束組成。 層次式體系結構的每一層最多只影響兩層&#xff0c;同時只要給相鄰層提供相同的接口&#xff…