首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Bourne shell中捕获命令输出到文件描述符?

在Bourne shell中捕获命令输出到文件描述符,可以使用以下方法:

  1. 使用exec命令将命令输出重定向到文件描述符。例如,将命令输出重定向到文件描述符3:
代码语言:txt
复制
exec 3>&1

这将把文件描述符1(标准输出)复制到文件描述符3。

  1. 使用exec命令将命令输出重定向到文件描述符3:
代码语言:txt
复制
command_output=$(exec 3>&1; command 1>&3)

这将把命令的输出存储在变量command_output中。

  1. 使用exec命令将命令输出重定向到文件描述符3,并将其写入文件:
代码语言:txt
复制
exec 3>&1
command >&3 2>&1 | tee output.txt

这将把命令的输出写入文件output.txt,并将其输出到屏幕。

注意:在使用文件描述符时,需要确保文件描述符没有被占用。如果需要使用多个文件描述符,可以使用不同的数字。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Shell 命令行 从日志文件根据将符合内容的日志输出到另一个文件

Shell 命令行 从日志文件根据将符合内容的日志输出到另一个文件 前面我写了一篇博文Shell 从日志文件中选择时间段内的日志输出到另一个文件,利用循环实现了我想要实现的内容。...但是用这个脚本的同事很郁闷,因为执行时间比较长,越大的文件越长。于是找我,问我能不能实现一个更快的方案。 我想了一下,觉得之前的设计是脱裤子放屁,明明有更加简单的实现方法。...想办法获得我要截取的内容的开始的行号,然后再想办法获得我想截取的文件的结尾的行号,然后用两个行号来进行截断文件并输出。就可以实现这个效果了。...^[ \t]*//g' | cut -f1` el=`cat -n $log | grep $e | tail -1 | sed 's/^[ \t]*//g' | cut -f1` # 获取结果并输出到...res.log 文件 sed -n "$sl","$el"'p' $log >> res.log 运行了一下,速度飞起啊!

2.6K70

Bash中文件描述符的详细介绍

前言 Linux将所有内核对象当做文件来处理,系统用一个size_t类型来表示一个文件对象,比如对于文件描述符0就表示系统的标准输入设备STDIN,通常情况下STDIN的值为键盘,read命令就默认从...简单地说,一个文件描述符可以和一个文件挂钩,一旦挂钩就可以通过取地址运算符&获得该文件的句柄,比如&0就可以获得STDIN设备在内存的句柄(设备在系统也被当做文件处理),可以这样理解,如果是一个shell...默认的文件描述符也是可以被替换的, 例如我们可以替换掉 stdout 到一个文件, 这样命令的输出就不是打印到终端, 而是被输出到文件: ?...其中 exec 是一个 bash 内置命令, 不同于在终端执行命令时会 fork 一个子进程, 通过 exec 执行的命令会直接修改当前的 shell 进程, 可以通过它执行命令来修改当前 shell...文件描述符的操作 Shell 文件描述符的操作由三部分组成: (Left, Operation, Right): Left 可以是 0-9 的数字, 代表第 n 号文件描述符; Left 还可以为

1.2K43
  • 《前端运维》一、Linux基础--03Shell基础及补充

    其实就是Linux的shell的种类,比如常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr...文件描述符 类型 键盘 /dev/stdin 0 标准输入 显示器 /dev/stdout 1 标准输出 显示器 /dev/stderr 2 标准错误输出 2.6.1、输出重定向 类型 符号 作用...标准输出重定向 命令 > 文件 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中 标准输出重定向 命令 >> 文件 以追加的方式,把命令的正确输出输出到指定的文件或设备当中 错误输出重定向 命令...>文件 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中 错误输出重定向 命令>>文件 以追加的方式,把命令的错误输出输出到指定的文件或设备当中 正确输出和错误输出同时保存 命令>文件 2>&1...作用 '' 单引号,在单引号中所有的特殊符号,$和`都没有特殊含义 "" 双引号,在双引号里特殊符号都没有特殊含义,但是 $ ` \ 例外,拥有调用变量值,引用命令和转义的含义 `` 反引号,扩起来的是系统命令

    66620

    《前端运维》一、Linux基础–03Shell基础及补充「建议收藏」

    其实就是Linux的shell的种类,比如常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr...文件描述符 类型 键盘 /dev/stdin 0 标准输入 显示器 /dev/stdout 1 标准输出 显示器 /dev/stderr 2 标准错误输出 2.6.1、输出重定向 类型 符号 作用...标准输出重定向 命令 > 文件 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中 标准输出重定向 命令 >> 文件 以追加的方式,把命令的正确输出输出到指定的文件或设备当中 错误输出重定向 命令...>文件 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中 错误输出重定向 命令>>文件 以追加的方式,把命令的错误输出输出到指定的文件或设备当中 正确输出和错误输出同时保存 命令>文件 2>&1...作用 ” 单引号,在单引号中所有的特殊符号,$和`都没有特殊含义 “” 双引号,在双引号里特殊符号都没有特殊含义,但是 $ ` \ 例外,拥有调用变量值,引用命令和转义的含义 “ 反引号,扩起来的是系统命令

    57220

    Shell 编程日记

    Shell 脚本语法 Shell 解释器 名称 路径 简介 Bourne Shell /usr/bin/sh或/bin/sh Bourne shell是AT&T开发的原始UNIX shell以其开发人员...Stephen Bourne命名,Bourne shell也以其程序名sh闻名 Bourne Again Shell /usr/bin/bash bash是大多数Linux系统以及Mac OS X默认的...Bourne shell的源代码发展而来,向后兼容的Bourne Shell,包括C shell的诸多特性 .......Shell 脚本执行顺序依旧遵循“从上往下、从左往右”的顺序; Shell 脚本就是把一些命和运算符写进脚本文件,然后完成批量重复性工作而已; Shell 脚本支持流程控制, for、while、if...测试语句 在Shell 脚本,表达式要 [] 括起来,且表达式两边均要有空格 数值比较 比较表达式 描述 n1 -eq n2 n1 = n2 n1 -ge n2 n1 >= n2 n1 -gt n2

    20020

    一文入门Shell编程

    在类 Unix 操作系统( Linux、macOS、FreeBSD),用户可以通过终端或终端仿真器与 Shell 交互。...它是 Bourne Shell 的扩展,提供了更多的功能,包括命令历史、自动补全等。 Zsh(Z Shell): Zsh 是一个功能强大的 Shell,提供了许多先进的功能,模糊匹配、主题定制等。...文件重定向: # 输出到文件 echo "Hello" > output.txt # 从文件读取输入 cat input.txt unsetunset6....常用命令unsetunset echo: 打印文本。 echo "Hello, World!" grep: 在文件搜索模式。...文件权限和用户管理: Shell 脚本可以用来管理文件权限和用户账户。 异常处理: 使用 trap 命令捕获和处理脚本的异常。 以上是 Shell 编程的一些基础概念和常用命令

    13510

    一篇文章从了解到入门shell

    3.1、bash Bourne Again Shell 用来替代Bourne shell,也是目前大多数Linux系统默认的shell。...n > file 将文件描述符为 n 的文件重定向到 file。n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。n >& m 将输出文件 m 和 n 合并。..."a=$a" 来个比较过分的 cat text.txt 把1.sh文件的内容出入到cat,然后cat在输出到text.txt,相当于,把1.sh的内容输出到text.txt中了...,有几个符号要非常注意,用的也比较多,不要搞混了,搞混了,逻辑运算很容易出错 4.7.1、单小括号() 命令组 括号命令将会新开一个子shell顺序执行,所以括号的变量不能够被脚本余下的部分使用...匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;,有点类型Java的break。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令

    2.1K30

    Shell

    一、简介 Linux的Shell种类众多,常见的有:(一般不区分前两种) Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash)...输入输出 read 命令从标准输入读取一行,并把输入行的每个字段的值指定给 shell 变量。 5.1 echo -e 开启转义,\n换行,\c不换行。 #!...输入到指定文件 # 将"It is a test"输出到当前目录下的"myfile"文件 echo "It is a test" > myfile # 可以写成“目录/文件名”的形式 原样输出字符串...n > file 将文件描述符为 n 的文件重定向到 file。 n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。 n >& m 将输出文件 m 和 n 合并。...放在>后面的&(&>和>&一样),表示重定向的目标不是一个文件,而是一个文件描述符

    1.3K20

    Shell学习——运维自动化

    在Linux和其他类Unix系统,常见的ShellBourne Shell(sh),它是最早的Unix Shell。...然而,现代Linux系统通常使用Bash(Bourne Again Shell)作为默认Shell,Bash是对Bourne Shell的扩展和改进。...条件语句和循环结构:Shell提供了条件语句(if、case)和循环结构(for、while),允许根据条件执行不同的操作或重复执行一组命令。...它通过读取文本流并根据指定的规则进行处理,然后将结果输出到标准输出或文件。sed在Linux和Unix系统中广泛使用,具有强大的文本处理能力。...需要注意的是,默认情况下,sed命令不会修改原始文件,而是将结果输出到标准输出。如果要直接在原始文件修改,可以使用-i选项。

    19010

    subprocess 使用总结

    他们可以是PIPE,文件描述符文件对象,也可以设置为None,表示从父进程继承。 参数 shell 设为 true ,程序将通过 shell 来执行。...subprocess.PIPE 表示一个可以被用于Popen的stdin 、stdout 和stderr 3个参数的特值,表示需要创建一个新的管道。...有效值为 PIPE、现有文件描述符(正整数)、现有文件对象和无。...三个数据流默认是表现在用户终端上的执行一个shell命令行时通常会自动打开三个标准文件: 标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件stderr),这两个文件都对应终端的屏幕...进程将从标准输入文件得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件

    1.8K30

    Shell base用法描述

    同时,Bash 也是大多数Linux 系统默认的 Shell。 在一般情况下,人们并不区分 Bourne ShellBourne Again Shell,所以,像 #!...name 变量类型 在shell存在三种变量 局部变量:::局部变量在脚本或命令定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。...输入输出重定向 bash一般会将输入和所产生的输出都发送到终端,如果要将其输出到其他位置,则需要重定向 重定向命令 命令 说明 command > file 将输出重定向到 file。...n > file 将文件描述符为 n 的文件重定向到 file。 n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。 n >& m 将输出文件 m 和 n 合并。...输出重定向 command1 > file11 例如: # 将历史命令出到history.txt文件 history > history.txt12 输出重定向 command1 < file11

    32120

    Shell编程基入门

    1、什么是Shell 2、什么是Shell脚本 3、Shell脚本语言种类 4、脚本的建立以及执行、停止 5、脚本的基本运算符 1、什么是Shell Shell是一个命令解释器,他的作用就是解释执行用户输入的命令和程序...,用户输入一条命令,它就执行一条,就可以立即得到回应的对话方式被称为"交互" Shell存在于操作系统的最外层,负责与用户直接对话,把用户输入的命令解释给操作系统,并处理各式各样的操作系统的输出结果,然后输出到明明返回给用户...从’Shell’单词的英文释义可得,命令解释器(Shell)是贝壳的意思,从图片来看Shell就像贝壳一样包住了系统核心 2、什么是Shell脚本 当命令或程序语句不在命令执行,而是通过一个程序文件来执行时...,该程序就可以成为Shell脚本,通俗的说就是将一大堆命令写入脚本,再由Shell执行,就叫做Shell脚本,这种通过文件执行脚本的方式称为非交互的方式,在Windows下,这种被称为 ‘Dos批处理程序.../Linux主要有两大类Shell:一类是Bourne Shell 、一类是C Shell 1.Bourne shell 包括Bourne shell(sh)、 Korn shell(ksh) 、Bourne

    34840

    Linux shell 的极品!高效的命令行~

    本文是关于如何在Ubuntu 20.04上安装和配置ZSH。此步骤适用于所有基于Ubuntu的发行版。ZSH代表Z Shell,它是类Unix操作系统的shell程序。...ZSH是Bourne Shell的扩展版本,结合了BASH,KSH和TSH的某些功能。 Zsh功能 命令行完成。 可以在所有shell之间共享历史记录。 扩展文件匹配。 更好的变量和数组处理。...与bourne shell之类的shell兼容。 拼写更正和自动填充命令名称。 命名目录。...按1,它将带您配置与历史相关的参数,保留多少历史行和历史文件的位置。...我们可以选择选项“2”,它将用默认参数填充.zshrc文件,而不是选择选项“1”到主菜单设置每个设置。我们可以直接在.zshrc文件更改参数。

    2.7K20

    (18)Bash输入输出重定向

    在介绍输入输出重定向前,我们需要知道什么是标准输入和输出 1.标准输入输出 设备 设备文件文件描述符 类型 键盘 /dev/stdin 0标准输入显示器 /dev/sdtout1标准输出 显示器 /...2.输出重定向 类型符号作用标准输出重定向 命令 > 文件以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中。命令 >> 文件以追加的方式,把命令的 正确输出输出到指定的文件或设备当中。...标准错误输出重定向 错误命令 2> 文件以覆盖的方式,把命令的 错误输出输出到指定的文件或设备当中。错误命令 2>> 文件以追加的方式,把命令的错误输出输出到指定的文件或设备当中。...3.正确输出和错误输出同时保存 正确输出和错误输出同时保存 命令 > 文件 2>&1以覆盖的方式,把正确 出和错误输出都保存到同 一个文件当中。...&>/dev/null:不管命令是否正确,直接丢入这个文件,不保存任何数据,在写shell脚本时有用,比如说我们在写Shell脚本的时候,有些命令行在Shell执行的时候他会有一些输出,这个输出对于我们整个脚本没有任何意义

    1.1K20

    Linux下的shell简介(三) 原

    可执行文件类似于Windows下的.exe文件,这些可执行文件也可以作为shell命令来执行。其实Linux上很多命令都不是shell的内置命令,例如ls就是一个可执行文件,存放在/bin/ls。...参数就是在选项后面紧跟的一个或多个字符串,这些字符串指定了命令的操作对象,文件或者目录。...6.shell的自动补齐命令行 自动补齐命令行是bash一个简单而且实用的功能,自动补齐命令行也就是在输入命令时不必把命令全,shell就能智能判断用户所要输入的命令。...sh sh 由Steve Bourne开发,是Bourne Shell的缩写,sh 是Unix 标准默认的shell。...作为解释器参数 这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,: /bin/sh test.sh /bin/php test.php 这种方式运行的脚本,不需要在第一行指定解释器信息

    1.4K30

    13.Shell 简介

    告诉系统其后路径所指定的程序即是解释此脚本文件Shell 程序。...---- 第一个shell脚本 打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用...2、作为解释器参数 这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,: ? 这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。...与 Bourne Shell 完全兼容,并且在 Bourne Shell 的基础上增加了很多特性。可以提供命令补全,命令编辑和命令历史等功能。...它还包含了很多 C Shell 和 Korn Shell 的优点,有灵活和强大的编辑接口,同时又很友好的用户界面。

    98361

    BashShell变量

    var=value command 3.2 设置全局用户定义变量 创建全局环境变量的方法是先创建一个局部变量,再通过 export 命令出到全局环境。...3.6 环境变量持久化 在登入 Linux 系统启动一个 Bash Shell 时,默认情况下 Bash 会在几个文件查找命令。这些文件称为「启动文件」或「环境文件」。...默认的 Shell 环境变量 Bash Shell 源自早期的 Unix Bourne Shell,因此继承了 Unix Bourne Shell 定义的一些默认的环境变量。...通常用来将跟踪输出到一个文件 BASHOPTS 当前启用的 Bash Shell 选项的列表 BASHPID 当前 Bash 进程的 PID COLUMNS 当前 Bash Shell 实例所用终端的宽度...COMP_WORDS 含有当前命令行所有单词的数组变量 COMPREPLY 含有由 Shell 函数生成的可能填充代码的数组变量 COPROC 占用未命名的协进程的 I/O 文件描述符的数组变量 DIRSTACK

    2.4K30
    领券