Linux echo 命令使用說明

echo 命令使用說明(Linux)

適用環境

  • Bash/Zsh 等常見 Shell(echo 通常為內建命令)
  • 也可能存在外部 /bin/echo(行為與內建略有差異)

基本語法

echo [選項] [字符串...]

常用選項

  • -n: 結尾不輸出換行
  • -e: 解析反斜杠轉義(非 POSIX,部分系統默認無效)
  • -E: 禁用轉義解析(通常為默認行為)

說明:不同系統/不同 Shell 對 -e/-E 的支持存在差異;可移植腳本更推薦使用 printf

常見轉義(配合 -e

  • \n: 換行
  • \t: 制表符(Tab)
  • \r: 回車
  • \a: 響鈴(Beep)
  • \b: 退格
  • \c: 結尾不再輸出后續內容
  • \e\x1b: ESC(有的實現不支持 \e
  • \0NNN: 八進制字符(NNN 為 1-3 位八進制)
  • \xHH: 十六進制字符(HH 為 1-2 位十六進制)

示例:

echo -e "第一行\n第二行"
echo -e "列1\t列2\t列3"

不換行輸出

echo -n "正在處理..."; sleep 1; echo "完成"

重定向輸出到文件

  • 覆蓋寫入:>
  • 追加寫入:>>
echo "hello" > file.txt
echo "world" >> file.txt

以 root 權限寫入(避免 sudo 只作用于 echo 而非重定向):

echo "配置" | sudo tee /etc/my.conf > /dev/null

多行文本輸出

  1. 使用轉義換行:
echo -e "line1\nline2\nline3"
  1. 推薦使用 printf(可移植、格式強):
printf "line1\nline2\nline3\n"
  1. 寫入多行到文件(Here-Doc):
cat > notes.txt << 'EOF'
第一行
第二行
包含 $VAR 與 \n 等字符不會被展開
EOF

顏色與高亮(ANSI 轉義)

echo -e "\e[31m紅色\e[0m 普通 \e[1m加粗\e[0m"

常用顏色碼:30-37 前景色,90-97 亮色;40-47 背景色。\e[0m 重置。

變量與命令替換

name="Alice"
echo "Hello, $name"            # 變量
echo "今日日期: $(date +%F)"   # 命令替換

注意:若包含空格或通配符,建議加引號:

echo "$PATH"

與 printf 的對比(為何常推薦 printf)

  • echo 在不同平臺的選項與轉義行為不一致(如 -e)。
  • printf 語義一致、可控,適合腳本與復雜格式化:
printf "%-10s %5d\n" "user" 42

常見用法示例

# 1) 追加日志并帶時間戳
echo "[$(date +%F' '%T)] task done" >> /var/log/app.log# 2) 輸出 JSON(注意引號)
echo '{"name":"bob","id":1}'# 3) 生成簡單配置文件
echo "PORT=8080" > .env
echo "DEBUG=true" >> .env# 4) 輸出空行
echo# 5) 顯示包含反斜杠的原文
echo "path=C:\\Windows\\System32"

跨平臺與兼容性提示

  • echo 更適合簡單輸出;腳本嚴謹性與可移植性優先時使用 printf
  • dashbusyboxfish 等環境里,echo -e 行為可能不同。
  • 區分 Shell 內建 echo/bin/echo
    type echo   # 查看 echo 來自何處
    

速查表

  • 基礎:echo "text"
  • 不換行:echo -n "text"
  • 解析轉義:echo -e "a\nb"
  • 覆蓋/追加到文件:> / >>
  • 寫 root 文件:echo ... | sudo tee /path
  • 推薦復雜輸出:使用 printf

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

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

相關文章

Java搭建高效后端,Vue打造友好前端,聯合構建電子采購管理系統,實現采購流程電子化、自動化,涵蓋采購全周期管理,功能完備,附詳細可運行源碼

前言&#xff1a;在當今數字化浪潮席卷的時代&#xff0c;企業的采購管理面臨著前所未有的挑戰與機遇。傳統采購模式因流程繁瑣、效率低下、信息不透明等問題&#xff0c;已難以滿足企業快速發展的需求。電子采購管理系統作為一種創新的采購解決方案&#xff0c;借助先進的信息…

應用開發使用緩存

在 Java 開發的典型架構&#xff08;結合前端、后端、MyBatis、MySQL 及緩存機制&#xff09;中&#xff0c;緩存層次可以從前端到后端再到數據庫進行劃分&#xff0c;通常涉及以下多層緩存&#xff1a;1. 前端緩存瀏覽器緩存&#xff1a;瀏覽器自帶的緩存機制&#xff08;如 H…

leetcode算法刷題的第二十六天

今天主要是要用貪心算法來解決重置區間的問題。 1.leetcode 452.用最少數量的箭引爆氣球 題目鏈接 class Solution { public:static bool cmp(const vector<int>& a,const vector<int>& b){return a[0]<b[0];}int findMinArrowShots(vector<vecto…

BlueZ 學習之GATT Server開發

Linux下&#xff0c;使用C語言開發一個簡單的GATT Server&#xff0c;我的Ubuntu上跑的BlueZ版本是5.79&#xff0c;使用的GLib庫版本是2.85.2&#xff0c;這里我直接使用GLib里的D?Bus來實現與BlueZ通信。BlueZ 官方推薦通過 D-Bus 進行通信和控制&#xff0c;如果是要使用原…

【Linux基礎】Linux文件系統深度解析:EXT4與XFS技術詳解與應用

目錄 引言 1 Linux文件系統概述 1.1 文件系統的基本概念 1.2 日志文件系統的概念 2 EXT4文件系統詳解 2.1 EXT4概述 2.2 EXT4的磁盤結構 2.3 EXT4的inode結構 2.4 EXT4的新特性 2.4.1 Extents 2.4.2 延遲分配 2.4.3 快速文件系統檢查 2.5 EXT4的性能特點 3 XFS文…

埃文科技榮獲2025年“數據要素×”大賽河南分賽二等獎

2025年8月19日&#xff0c;2025年“數據要素”大賽河南分賽決賽在鄭州舉行&#xff0c;本屆河南分賽聚焦數據價值賦能。鄭州埃文科技有限公司&#xff08;以下簡稱“埃文科技”&#xff09;憑借其前沿成果“IP地址高精度地理定位及應用場景劃分數據集”&#xff0c;從500多支參…

鏈上迷局:區塊鏈技術的法律暗礁與合規導航

高鵬律師首席數據官&#xff0c;數字經濟團隊創作AI輔助區塊鏈&#xff0c;這個被譽為“信任機器”的技術&#xff0c;正以顛覆性的力量重塑數字經濟的底層邏輯。從比特幣的橫空出世到NFT的全民狂歡&#xff0c;從DeFi的金融革命到DAO的組織重構&#xff0c;技術永不眠&#xf…

線性代數基礎 | 基底 / 矩陣 / 行列式 / 秩 / 線性方程組

注&#xff1a;本文為 “線性代數基礎 ” 相關合輯。 略作重排&#xff0c;未作全校。 如有內容異常&#xff0c;請看原文。 線性代數的本質&#xff08;1&#xff09;——基底、向量、線性變換、逆陣、行列式 野指針小李于 2020-08-13 16:34:45 發布 零、基底 在展開后續內…

GORM.io詳細指南

GORM.io 詳細指南 GORM&#xff08;全稱 Go ORM&#xff09;是一個功能豐富的 ORM&#xff08;Object-Relational Mapping&#xff09;庫&#xff0c;用于 Go 語言。它簡化了數據庫操作&#xff0c;將 SQL 查詢映射到 Go 結構體&#xff0c;支持多種數據庫后端。GORM 的設計理念…

【Flask】測試平臺開發,應用管理模塊實現-第十一篇

概述通過Element UI抽屜和表單校驗&增改接口合并實現應用管理Drawer 抽屜之前產品修改和添加是使用Dialog組件實現的&#xff0c;但這個組件有時候并不滿足我們的需求, 比如表單很長, 亦或是你需要臨時展示一些文檔, Drawer 是可以從側面彈出的一個層&#xff0c;可以容納更…

Elasticsearch 深分頁限制與解決方案

最近在準備面試&#xff0c;正把平時積累的筆記、項目中遇到的問題與解決方案、對核心原理的理解&#xff0c;以及高頻業務場景的應對策略系統梳理一遍&#xff0c;既能加深記憶&#xff0c;也能讓知識體系更扎實&#xff0c;供大家參考&#xff0c;歡迎討論。在項目中遇到一個…

基于偏最小二乘法PLS多輸入單輸出的回歸預測【MATLAB】

基于偏最小二乘法&#xff08;PLS&#xff09;多輸入單輸出的回歸預測【MATLAB】 在科學研究和工程實踐中&#xff0c;我們常常需要根據多個相關變量來預測一個關鍵結果。例如&#xff0c;根據氣溫、濕度、風速等多個氣象因素預測空氣質量指數&#xff0c;或根據多種原材料成分…

SQL Server核心架構深度解析

SQL Server 的體系結構是一個復雜但設計精密的系統&#xff0c;主要可以分為四大核心組件&#xff0c;它們協同工作以管理數據庫、處理查詢、確保數據安全與一致性。以下是其體系結構的核心組成部分&#xff1a; 核心組件&#xff1a;協議層 (Protocol Layer) 作用&#xff1a;…

Django REST Framework Serializer 進階教程

1. 序列化器概述 在 Django REST Framework&#xff08;DRF&#xff09;中&#xff0c;序列化器&#xff08;Serializer&#xff09;用于將復雜的數據類型&#xff08;如模型實例&#xff09;轉換為 JSON 格式&#xff0c;以便于 API 返回給客戶端。此外&#xff0c;序列化器還…

面試問題詳解十四:Qt 多線程同步【QSemaphore】講解

在多線程開發中&#xff0c;經常需要控制多個線程對共享資源的訪問數量。例如限制同時下載文件的數量、控制數據庫連接池的連接使用等等。這時候&#xff0c;Qt 提供的 QSemaphore&#xff08;信號量&#xff09;就非常派得上用場。一、什么是 QSemaphore&#xff1f; QSemapho…

Spark mapGroups 函數詳解與多種用法示例

mapGroups 是 Spark 中一個強大的分組操作函數&#xff0c;它允許你對每個分組應用自定義邏輯并返回一個結果。以下是多個使用簡單樣例數據的具體用法示例。基礎示例數據假設我們有一個簡單的學生成績數據集&#xff1a;// 創建示例DataFrame val studentScores Seq(("Ma…

【圖論】Graphs.jl 圖數據的讀寫與生成器

文章目錄圖數據的讀寫Graphs.loadgraphGraphs.loadgraphsGraphs.savegraph保存單個圖保存圖字典Graphs.loadlg_multGraphs.savelgGraphs.savelg_mult圖的生成器1. 隨機圖模型1.1 Erd?s–Rnyi 模型1.2 巴拉巴西-阿爾伯特模型 (無標度網絡)1.3 小世界網絡模型1.4 隨機塊模型 (SB…

Go指針全解析:從基礎到實戰

基本概念與定義指針的定義指針是一種特殊的變量類型&#xff0c;它存儲的不是實際數據值&#xff0c;而是另一個變量在計算機內存中的地址。在底層實現上&#xff0c;指針本質上是保存內存位置的無符號整數&#xff0c;它直接指向內存中的特定位置&#xff0c;允許程序直接操作…

Oracle 查詢有哪些用戶 提示用戶名密碼無效

要查詢 Oracle 數據庫中的所有用戶&#xff0c;可以使用以下 SQL 查詢語句。這個查詢將返回數據庫中所有用戶的列表。 [] SELECT username FROM all_users ORDER BY username;如果你有足夠的權限&#xff08;通常是 DBA 權限&#xff09;&#xff0c;你也可以使用 dba_users 視…

小白成長之路-develops -jenkins部署lnmp平臺

文章目錄一、準備工作1.1兩臺虛擬機1.2配置文件1.3免密登錄二、實戰1.構建主item2.測試nginx,php,mysql2.1新建測試項目2.2與正式項目綁定構建后的操作2.3測試2.4導入discuz項目總結一、準備工作 1.1兩臺虛擬機 服務器&#xff1a;192.168.144.24 客戶端&#xff1a;192.168.…