【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.tpcf.cn/bicheng/85595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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 算法会构建高斯金…