【Linux】運行腳本后打屏同時保存到本地

命令:

sh run.sh 2>&1 | tee output.log
sh run.sh 2>&1 | tee output_$(date "+%Y%m%d%H%M").log

作用:運行腳本,并同時將輸出(包括標準輸出和錯誤輸出)顯示到終端,并保存到文件中。
2>&1:把標準錯誤重定向到標準輸出。
管道符|:將前面的結果傳遞給tee命令。
tee:把輸出同時顯示到終端和寫入文件中。


AI查詢:

命令 sh run.sh 2>&1 | tee output.log 的作用是運行 shell 腳本 run.sh,并同時將輸出(包括標準輸出和錯誤輸出)顯示到終端,并保存到 output.log 文件中。下面我會逐一解釋每個部分的作用和邏輯:----------------------------------------1. SH RUN.SH· sh:調用系統默認的 shell 解釋器(通常為 Bourne Shell)。· run.sh:要執行的 shell 腳本文件。· 整體作用:執行 run.sh 腳本。----------------------------------------2. 2>&1(文件描述符重定向)· 文件描述符(File Descriptors) 是 Unix/Linux 系統中對輸入/輸出流的抽象編號:· 0:標準輸入(Standard Input)· 1:標準輸出(Standard Output,通常是終端輸出)· 2:標準錯誤(Standard Error,通常是錯誤信息輸出)· 2>&1 的含義:· 將 文件描述符 2(標準錯誤) 重定向到 文件描述符 1(標準輸出)。· 即:將錯誤信息與正常輸出合并,一起輸出到同一個位置。----------------------------------------3. | TEE OUTPUT.LOG· |:管道符,將左邊命令的輸出傳遞給右邊的命令。· tee:這是一個工具,用于將輸入同時顯示到終端和寫入文件。· output.log:要保存輸出的文件。· 整體作用:· 將 sh run.sh 的輸出(包括錯誤信息)通過 tee 工具同時顯示到終端和寫入 output.log 文件。----------------------------------------4. 完整邏輯鏈條結合以上部分,命令的執行流程如下:1. 執行 run.sh 腳本,生成 標準輸出(stdout) 和 標準錯誤(stderr)。2. 將 stderr(描述符 2) 重定向到與 stdout(描述符 1) 相同的位置(2>&1)。3. 將合并后的所有輸出通過管道符 | 傳遞給 tee output.log。4. tee 將這些輸出 實時顯示在終端,并 同步寫入 output.log 文件。----------------------------------------5. 示例場景假設 run.sh 的內容如下:#!/bin/sh
echo "Normal output"
echo "Error message" >&2  # 通過 >&2 將輸出發送到標準錯誤執行 sh run.sh 2>&1 | tee output.log 會:· 在終端顯示:Normal outputError message· 同時,output.log 文件內容將是:Normal outputError message----------------------------------------6. 與類似命令的區別· 如果不加 2>&1,只執行 sh run.sh | tee output.log:· 標準錯誤(stderr) 會被忽略,只會處理 標準輸出(stdout)。· 如果替換為 sh run.sh &> output.log(某些 Shell 支持的簡寫):· 輸出(包括 stderr)會被寫入文件,但不會顯示到終端。----------------------------------------7. 適用場景這個命令常用于:· 調試腳本:需要實時觀察輸出,同時保留日志供后續分析。· 自動化部署/監控:確保日志記錄完整,同時用戶能實時看到關鍵信息。· 記錄錯誤信息:確保錯誤信息與正常輸出一起被捕獲,便于問題排查。----------------------------------------8. 擴展你可以根據需求調整命令:· 僅保存標準輸出:sh run.sh | tee output.log· 僅保存錯誤信息:sh run.sh 2> error.log· 同時保存到不同文件:sh run.sh > output.log 2> error.log· 將輸出和錯誤合并到同一文件,但不實時顯示:sh run.sh 2>&1 > output.log

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

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

相關文章

Spark 在小眾日常場景中的實戰應用:從小店數據到社區活動

Spark 在小眾日常場景中的實戰應用:從小店數據到社區活動? 提起 Spark,大家往往會聯想到大型互聯網公司的數據處理、金融行業的復雜分析。但實際上,Spark 在許多小眾、貼近生活的場景中也能大顯身手。結合學習與實踐,我探索了 S…

mysql 執行計劃 explain命令 詳解

explain id :select查詢的序列號,包含一組數字,表示查詢中執行select子句或操作表的順序select_type:查詢類型 或者是 其他操作類型table :正在訪問哪個表partitions :匹配的分區type :訪問的類…

讓大模型“更懂人話”:對齊訓練(RLHF DPO)全流程實戰解析

網羅開發 (小紅書、快手、視頻號同名) 大家好,我是 展菲,目前在上市企業從事人工智能項目研發管理工作,平時熱衷于分享各種編程領域的軟硬技能知識以及前沿技術,包括iOS、前端、Harmony OS、Java、Python等…

GO 原子操作面試題及參考答案

Go 的 sync/atomic 包和 sync.Mutex 的根本區別是什么? Go 語言中的 sync/atomic 包和 sync.Mutex 都用于處理并發編程中的同步問題,但它們的實現機制、應用場景和性能特性存在根本差異。理解這些差異對于編寫高效、安全的并發代碼至關重要。 sync/atomi…

MATLAB 山脊圖繪制全解析:從數據生成到可視化進階

一、引言:當數據分布擁有「層次感」—— 山脊圖的魅力? 在數據可視化的世界里,我們常常需要同時展示多個分布的形態差異。傳統的重疊密度圖雖然能呈現整體趨勢,但當分布數量較多時,曲線交疊會讓畫面變得雜亂。這時候&#xff0c…

跨境電商每周資訊—6.16-6.20

1. Instagram 在亞太地區逐漸超越 TikTok 在整個亞太地區,Instagram用戶數量正逐漸超過TikTok。預計2025年日本Instagram用戶數量將增至4440萬,印度今年用戶數量將增長10%,領跑亞太。與之形成對比的是,TikTok在一些國家增長速度放…

計算機網絡 網絡層:數據平面(一)

前一節學習了運輸層依賴于網絡層的主機到主機的通信服務,提供各種形式的進程到進程的通信。了解這種主機到主機通信服務的真實情況,是什么使得它工作起來的。 在本章和下一章,將學習網絡層實際是怎樣實現主機到主機的通信服務。與運輸層和應用…

Suna本地部署詳細教程

一、安裝基礎環境 # 1、創建環境 conda create -n suna python3.11.7# 2、激活虛擬環境 conda activate suna# 3、安裝jupyter和ipykernel pip install jupyter ipykernel# 4、將虛擬環境添加到jupyter # python -m ipykernel install --user --namemyenv --display-name"…

LeetCode 每日一題打卡|若谷的刷題日記 3day--最長連續序列

1.最長連續序列 題目: 給定一個未排序的整數數組 nums ,找出數字連續的最長序列(不要求序列元素在原數組中連續)的長度。 請你設計并實現時間復雜度為 O(n) 的算法解決此問題。 示例 1: 輸入:nums [1…

EfficientVLA:面向視覺-語言-動作模型無訓練的加速與壓縮

25年6月來自上海交大、哈工大、西安交大和電子科大(成都)的論文“EfficientVLA: Training-Free Acceleration and Compression for Vision-Language-Action Models”。 視覺-語言-動作 (VLA) 模型,特別是基于擴散的架構,展現出具…

wireshark抓包分析TCP數據包

1、直接從TCP的三次握手開始說起 三次握手就是客戶與服務器建立連接的過程 客戶向服務器發送SYN(SEQ=x)報文,然后就會進入SYN_SEND狀態服務器收到SYN報文之后,回應一個SYN(SEQ=y)ACK(ACK=x+1)報文,然后就會進入SYN_RECV狀態客戶收到服務器的SYN報文,回應一個ACK(AC…

同等學力申碩-計算機統考-歷年真題和備考經驗

同等學力申請碩士學位考試是比較適合在職人員的提升學位方式,了解過的人應該都知道,現在社會的競爭壓力越來越大,為了提高職業生存能力,提升學位在所難免。 一、已有計算機統考歷年真題資料 報名過同等學力申碩計算機專業的朋友都…

OSI網絡通信模型詳解

OSI 模型就是把這整個過程拆解成了 7 個明確分工的步驟,每一層只負責自己那一攤事兒,這樣整個系統才能順暢運轉,出了問題也容易找到“鍋”在誰那。 核心比喻:寄快遞 📦 想象你要把一份重要的禮物(你的數據…

C++ 檢測文件大小和文件傳輸

檢測文件的大小 你可以通過標準 C/C 的文件 API 很方便地獲取文件的字節大小&#xff0c;以下是幾種常用方法&#xff1a; ? 方法一&#xff1a;使用 stat() 函數&#xff08;推薦&#xff09; #include <sys/stat.h> #include <stdio.h>off_t get_file_size(co…

Ubuntu 中修改網卡 IP

在 Ubuntu 中修改網卡 IP 地址可以通過以下方法實現&#xff0c;具體取決于你使用的網絡管理工具&#xff08;如 netplan、ifconfig/ip 命令或傳統 interfaces 文件&#xff09;。以下是常見方法&#xff1a; 方法 1&#xff1a;使用 netplan&#xff08;Ubuntu 17.10 及更新版…

記錄學習three.js 為什么 .glTF 是更適合 Web 的 3D 模型格式?——從 .OBJ 到 .glTF 的轉變?

在上一篇中&#xff0c;我們介紹了如何在 Three.js 中加載 .OBJ 模型。如果你沒看過&#xff0c;建議先閱讀一下基礎內容。然而你很快會發現&#xff0c;.OBJ 雖然入門簡單&#xff0c;卻并不是 Web3D 場景中的最佳格式。 .OBJ 是什么&#xff1f; .OBJ 是最早期的3D交換格式之…

H遞歸函數.go

前言&#xff1a;遞歸函數是一種強大而又充滿魅力的編程技巧。它就像是一面神奇的鏡子&#xff0c;函數在其中能夠調用自身的倒影&#xff0c;從而以一種簡潔而優雅的方式解決許多復雜的問題。 目錄 一、遞歸函數是啥玩意兒 二、遞歸函數的優缺點 優點 缺點 三、遞歸函數…

軟件功能測試的測試標準

一、軟件功能測試行業標準概述 軟件功能測試行業標準是規范軟件測試流程、方法、工具及人員資質的準則&#xff0c;是確保軟件產品的功能性、可靠性、易用性等質量特性符合用戶需求。這些標準不僅為測試人員提供了明確的指導&#xff0c;也為軟件產品的質量控制提供了有力保障。…

EchoEar(喵伴):樂鑫發布與火山引擎扣子聯名 AI 智能體開發板

隨著生成式人工智能技術的快速發展&#xff0c;大語言模型 (LLM) 正逐步成為推動智能設備升級的核心力量。樂鑫科技攜手火山引擎扣子大模型團隊&#xff0c;共同推出智能 AI 開發套件 —— EchoEar&#xff08;喵伴&#xff09;。該套件以端到端開發為核心理念&#xff0c;構建…

圖像特征檢測算法SIFT

SIFT&#xff08;Scale - Invariant Feature Transform&#xff0c;尺度不變特征變換&#xff09;是一種計算機視覺領域的特征提取算法&#xff0c;具有重要的地位和廣泛的應用。 算法原理 構建高斯金字塔 &#xff1a; 為了實現多尺度檢測&#xff0c;SIFT 算法會構建高斯金…