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

如何在变量中存储对STDOUT/STDERR的引用

在变量中存储对STDOUT/STDERR的引用可以通过重定向来实现。在Linux和Unix系统中,可以使用文件描述符来引用STDOUT和STDERR。

STDOUT代表标准输出,通常用于打印程序的正常输出信息。STDERR代表标准错误,通常用于打印程序的错误信息。

要将STDOUT和STDERR的引用存储在变量中,可以使用以下方法:

  1. 使用文件描述符:在Bash脚本中,可以使用文件描述符来引用STDOUT和STDERR。文件描述符0代表STDIN,1代表STDOUT,2代表STDERR。可以使用以下命令将STDOUT和STDERR的引用存储在变量中:
代码语言:txt
复制
# 存储STDOUT的引用
stdout=$(exec 1>&1)
# 存储STDERR的引用
stderr=$(exec 2>&1)
  1. 使用命令替换:可以使用命令替换将STDOUT和STDERR的输出存储在变量中。可以使用以下命令将STDOUT和STDERR的引用存储在变量中:
代码语言:txt
复制
# 存储STDOUT的引用
stdout=$(command 2>&1 >/dev/tty)
# 存储STDERR的引用
stderr=$(command 2>&1 >/dev/null)

在上述命令中,command是要执行的命令。2>&1表示将STDERR重定向到STDOUT,>/dev/tty表示将STDOUT输出到终端,>/dev/null表示将STDOUT输出到空设备。

存储了STDOUT和STDERR的引用后,可以在后续的代码中使用这些变量来引用对应的输出流。例如,可以使用$stdout来引用STDOUT,使用$stderr来引用STDERR。

需要注意的是,存储了STDOUT和STDERR的引用后,后续的输出将不再直接打印到终端上,而是存储在对应的变量中。如果需要将输出恢复到终端上,可以使用以下命令:

代码语言:txt
复制
# 恢复STDOUT输出到终端
exec 1>&$stdout
# 恢复STDERR输出到终端
exec 2>&$stderr

上述命令中的$stdout$stderr是存储了STDOUT和STDERR的变量。

这样,就可以在Bash脚本中方便地存储和使用STDOUT和STDERR的引用了。

请注意,以上答案中没有提及任何特定的云计算品牌商,如腾讯云等。如需了解腾讯云相关产品和产品介绍,请参考腾讯云官方网站。

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

相关·内容

何在Node.js编写和运行您第一个程序

console对象提供了简单方法来写入stdoutstderr或任何其他Node.js流,在大多数情况下是命令行。...log方法打印到stdout流,因此您可以在控制台中看到它。 在Node.js上下文中, 流是可以接收数据对象,stdout流,或者可以输出数据对象,网络套接字或文件。...process.env对象是环境变量名称与作为字符串存储值之间简单映射。 与JavaScript所有对象一样,您可以通过在方括号引用其名称来访问单个属性。...第二行打印存储在args第一个元素环境变量; 也就是说,用户提供第一个命令行参数。...,以执行以下操作: 获取环境命令行参数值并将其存储变量envVar 。

8.4K30

Bash中文件描述符详细介绍

普通变量var,可以通过$var形式获得该变量所代表值,而对于一个文件描述符fd,则可以通过&fd形式获得文件描述符指向文件句柄,而这个句柄可以简单地理解成该文件路径。...当我们通过 exec 1 >&2 恢复 stdout 后, 可以发现文件 /tmp/stdout存储了之前命令输出....&, 表示同时操作 stdoutstderr Right 可以是文件名或 0-9 数字, 当 Right 是数字时必须要加上 & 符号, 表示引用第 n 号文件描述符; Right 还可以为...我们通过下面的例子来验证上面的文件描述符交换是否生效: 首先把默认 stderr 重定向到文件 /tmp/stderr , 这样在终端中就不会看到错误输出了; 当交换完 stderrstdout...,希望本文内容大家学习或者工作具有一定参考学习价值,如果有疑问大家可以留言交流,谢谢大家ZaLou.Cn支持。

1.2K43

面试题53(考察求职者String声明变量在jvm存储方法)

System.out.println((b+c)==MESSAGE); } } A true true B false false C true false D false true 考点:考察求职者String...声明变量在jvm存储方法 出现频率:★★★★★ 【面试题分析】 String a="tao"; String b="bao"; String c="taobao"; a,b,c,都是存在字符串常量池中...;String d="tao" +"bao";也是存在常量池中,d构造过程是现在常量池中先找是否有“taobao”这个字符长若有则直接引用改字符串 若没有则在字符长常量池中构造一个“taobao”类Stringe...="tao"+"ba"+"o"; 现在字符串常量池中查找“taoba” 若有则直接引用 若没有则构造一个放在该池中,然后在判断是有“taobao”过程和前面一样至于String f=a+b;实际等效于...Stringf=newString("taobao");存在在堆内存 所以不相等 所以参考答案是 (C)

1.6K30

解决reload(sys)后print失效问题

#改进方式如下: import sys #这里只是一个sys引用,只能reload才能进行重新加载 stdi,stdo,stde=sys.stdin,sys.stdout,sys.stderr reload...(sys) #通过import引用进来时,setdefaultencoding函数在被系统调用后被删除了,所以必须reload一次 sys.stdin,sys.stdout,sys.stderr=stdi...原来是因为IDLE作为一个GUI Shell环境,在启动初始化过程,会设置特定标准输入、标准输出和标准错误输出,使得输入和输出都在IDLEGUI Shell,可以在IDLE通过如下方式查看:...所以解决方案很简单,只需要在reload之前把这三个变量都复制一份,reload之后再恢复回来就行了: stdi,stdo,stde=sys.stdin,sys.stdout,sys.stderr...reload(sys) sys.stdin,sys.stdout,sys.stderr=stdi,stdo,stde print sys.stdout <idlelib.PyShell.PseudoOutputFile

93121

4.《python自省指南》学习

sys.stdin、sys.stdout和sys.stderr是类似于文件流对象,表示标准UNIX概念:标准输入、标准输出和标准错误。...错误消息(栈跟踪)被写入到sys.stderr,但与写入到sys.stdout内容一样,可对其进行重定向,例如:$ cat somefile.txt | python somescript.py |...--__name__、__main__   并非所有对象都有名称,但那些有名称对象都将名称存储在其 name 属性。...名称是从对象而不是引用该对象变量中派生。模块拥有名称,Python 解释器本身被认为是顶级模块或主模块。当以交互方式运行 Python 时,局部 name 变量被赋予值 'main' 。...id表明变量引用对象,值得注意是,可能有多个变量引用同一象,同样地,变量可以引用看起来相似(有相同类型和值),但拥有截然不同标识多个对象。

63620

现代化Kubernetes应用程序

理想情况下,您应该删除对本地日志文件和日志目录硬编码配置引用,而是直接登录到stdoutstderr。您应该将日志视为连续事件流或时间顺序事件序列。...在Kubernetes,默认情况下,容器使用json-fileDocker 日志记录驱动程序,该驱动程序捕获stdoutstderr流并将它们写入运行容器节点上JSON文件。...有时直接登录到stderrstdout对于您应用程序容器来说可能不够,并且您可能希望将应用程序容器与日志记录边车配对Kubernetes Pod容器。...然后,此sidecar容器可以从文件系统,本地套接字或systemd日志获取日志,从而使您比仅使用stderrstdout流更具灵活性。...因此,HOSTNAME环境变量值已完全从配置文件中外部化。然后,我们可以在引用它们所有Deployments和Pod更新这些变量,并重新启动Pod以使更改生效。

2K86

【系统】执行命令并得到返回值

在 Go 语言中,我们经常需要调用系统底层命令来执行一些任务。 比如执行系统命令、脚本或其他外部程序。 本教程将按照章节形式介绍如何在 Go 优雅地调用系统底层命令,并获取返回值。...= nil { fmt.Printf("命令执行出错: %v\n", err) } stderr := cmd.Stderr fmt.Printf("标准输出: %s\n", stdout...) fmt.Printf("标准错误: %s\n", stderr) } 这个例子演示了如何通过 cmd.Output() 获取标准输出,以及通过 cmd.Stderr 获取标准错误。...第五章:传递环境变量 在某些情况下,我们可能需要传递环境变量给被调用命令。...通过这个示例,你已经学会了如何在 Go 优雅地调用系统底层命令,并获取执行结果。 这在构建系统工具、自动化任务等场景中非常实用。 你学废了么?

20810

一起来学shell bash编程(2)

一起来学shell bash编程(1) 回顾完之后,这次推文主要学习如何在bash写更好loops,还有一些更加高级shell bash编程知识。事不宜迟,开始今天学习。...Bash有一个输入流( stdin)和两个输出流( stdoutstderr)。...通常命令输出将进入标准输出( stdout),错误消息将变为标准错误( stderr)。 默认情况下,两者stdoutstderr都被定向到终端。...如何在bash操作文件路径? 通常,我们必须在bash操作文件名以删除其中各个部分。也许我们想要删除目录名称,或者仅保留文件名,或者仅保留不带扩展名文件名,或者删除扩展名等等。...下面让我看一些例子: FILE=/A/B/C.txt.gzecho $FILE 预期打印: /A/B/C.txt.gz 从名称删除目录,并仅使用basenameshell命令保留文件名: FILE=

2K50

A Guide to Node.js Logging

在这篇博文中,我们将介绍你想要记录信息各种情况,Node.js console.log 和 console.error之间区别是什么,以及如何在不使用户控制台混乱情况下在库中发送日志记录。...,但系统实际上处理方式有不同。...stdout 可以用于处理进程输出。最后 stderr 则用于错误消息。...进程 消息-包含某些内容实际消息 堆栈追踪 也许是一些额外变量或信息 另外,既然我们知道打印最后都会落到 stdoutstderr 上,那么我们可能想要不同日志级别的记录以及过滤它能力。...你可以使用 isTTY 来检查 stdout,stdin,stderr 是否在终端模式。 : process.stdout.isTTY 根据 Node.js 启动方式,这个三个值可能不同。

1.7K20

文件操作(一、fgets和fputs、fscanf和fprintf、fread 和 fwrite、fopen和fclose、fgetc和fputc)

如果要求在外存上以ASCII码形式存储,则需要在存储前转换。以ASCII字符形式存储文件就是文本文件。 一个数据在内存是怎么存储呢?...这种“流”概念是抽象化,它隐藏了底层硬件复杂性,允许程序员使用一组统一函数(printf,scanf等)进行数据读写操作,而无需关心数据是如何在底层进行实际传输。...stdout - 标准输出流,大多数环境输出至显示器界面,printf函数就是将信息输出到标准输出 流stderr - 标准错误流,大多数环境输出到显示器界面。 ​...这是默认打开了这三个流,我们使用scanf、printf等函数就可以直接进行输入输出操作。​ stdin、stdoutstderr 三个流类型是: FILE* ,通常称为文件指针。​...每个被使用文件都在内存开辟了一个相应文件信息区,用来存放文件相关信息(文件名字,文件状态及文件当前位置等)。这些信息是保存在一个结构体变量

26710

python之基础篇(二)

python变量事实上是指向内存对象引用。  ...动态类型:在任何时刻,只要需要,某个对象引用都可以重新引用一个不同对象(可以是不同数据类型)   "="用于将变量名与内存某对象绑定:     如果对象事先存在,就直接进行绑定;否则,则由"="...字典属于可变对象   python,组合数据类型也是对象,因此其可以嵌套,['hello','world',[1,2,3]]   实质上,列表和元组并不真正存储数据,而是存放对象引用   python...,分别为标准输入、标准输出和标准错误,它们在sys模块中分别以sys.stdin、sys.stdout和sys.stderr形式提供。  ...def语句会创建一个函数对象,并同时创建一个指向函数对象引用。   函数也是对象,可以存储在组合数据类型,也可以作为参数传递给其它函数。

1.1K10

Python用subprocessPopen来调用系统命令

这时subprocessPopen命令就能有效完毕我们须要操作。在这里Popen予以简介。...參数env是字典类型,用于指定子进程环境变量。假设env = None,子进程环境变量将从父进程中继承。 參数Universal_newlines:不同操作系统下,文本换行符是不一样。...向stdin发送数据,或从stdoutstderr读取数据。可选參数input指定发送到子进程參数。 Communicate()返回一个元组:(stdoutdata, stderrdata)。...相同, 果希望从stdoutstderr获取数据,必须将stdoutstderr设置为PIPE。 Popen.send_signal(signal) 向子进程发送信号。...在异常对象,包 括进程returncode信息。 subprocess模块内容就这么多。在Python手冊,还介绍了怎样使用 subprocess来替换一些老模块,老函数样例。

1.7K20

Pythonos.system()、subprocess.run()、call()、check_output()用法

1.os.system()os.system() 是 C 语言中 system() 系统函数封装,允许执行一条命令,并返回退出码(exit code),命令输出内容会直接打印到屏幕上,无法直接获取..., stderr: 用于指定标准IO文件句柄,可以是: subprocess.PIPE: 用作 stdout, stderr 参数值时,可以从返回值对象 stdoutstderr...属性读取输出内容 subprocess.STDOUT: 用作 stderr 参数值时,相当于把标准错误重定向到标准输入) subprocess.DEVNULL: 用作 stdout,...会以“文本”模式打开(返回值对象 stdoutstderr 存储文本内容),否则返回值对象 stdoutstderr 存储是字节序列env: 用于设置程序执行时继承环境变量等,默认与当前进程相同该方法返回一个..., ret.stdout) assert re.match("stderr output", ret.stderr) # 如果 cmd 命令不存在,这里也是可以捕获到,内容可能是 xxx

53420

fprintf函数用法_c语言fgets函数用法

他们一般调用方式为: fprintf(文件指针,格式字符串,输出列表); fscanf(文件指针,格式字符串,输入列表); fprintf(fp,”%d,%6.2f”,i,t);作用:输出整型变量i和实型变量...fscanf(fp,”%d,%f”,&i,&t);作用:将fp指向磁盘文件上数据读取到i和t; fprintf(stderr,”can’t open it!”)...fprintf(stdout,”can’t open it !”); stdout — 标准输出设备 (printf(“..”)) 同 stdout。...stderr — 标准错误输出设备 两者默认向屏幕输出。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

88710

python sys模块常见用法汇总

python内置模块sys,提供了系统相关一些变量和函数,在实际开发,常见有以下几种用法 1....标准输入,输出和错误流 sys模块提供了变量来表示标准输入,输出和错误流,列表如下 sys.stdin, 标准输入流 sys.stdout,标准输出流 sys.stderr,标准错误流 具有文件句柄类似的操作...,可以从标准输入流读取信息,向标准输出和标准错误流写入信息,用法如下 >>> sys.stderr.write('stderr info\n') stderr info 12 >>> sys.stdout.write...6. sys.path 该变量存储了python寻找模块路径 >>> sys.path ['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr...7. sys.module 该变量是一个字典,存储了已经导入模块 >>> import sys >>> sys.modules.keys() dict_keys(['abc', '_signal',

1.8K20

C语言 文件操作

数据在文件,字符用ASCLL形式存储,数值型数据可以用ASCLL存储也可以用二进制形式储存....,也需要从外部设备获取数据,不同外部设备输⼊输出操作各不相同,为了⽅便程序员各种设备进⾏⽅便操作,我们抽象出了流概念,我们可以把流想象成流淌着字符河。...标准流          C语言程序在启动时候,默认打开 stdin stdout stderr三个流,分别是标准输入流,标准输流, 标准错误流.        ...stdin,由键盘输入 scanf就是从标准输入流读取数据         stdout标准输出流,大多数环境输出给显示器,printf就是输出         stderr输出到显示器        ...,用来存放文件相关信息(文件名字,文件状态,和文件当前位置).这些信息都存放在一个结构体变量,由系统声明,取名为FILE FILE *pf;  pf是指向FILE类型数据指针变量,可以使pf

7410

python执行DOS命令3种方法小

在windows平台下,默认shell由COMSPEC环境变量来指定。 参数stdin, stdout, stderr分别表示程序标准输入、输出、错误句柄。...参数env是字典类型,用于指定子进程环境变量。如果env = None,子进程环境变量将从父进程中继承。 参数Universal_newlines:不同操作系统下,文本换行符是不一样。...参数startupinfo与createionflags只在windows下用效,它们将被传递给底层CreateProcess()函数,用 于设置子进程一些属性,:主窗口外观,进程优先级等等。...向stdin发送数据,或从stdoutstderr读取数据。可选参数input指定发送到子进程参数。 Communicate()返回一个元组:(stdoutdata, stderrdata)。...同样, 果希望从stdoutstderr获取数据,必须将stdoutstderr设置为PIPE。 Popen.send_signal(signal)  向子进程发送信号。

2K20

Node.js 多进程(上)

每个子进程总是带有三个流对象:child.stdin, child.stdout 和child.stderr。他们可能会共享父进程 stdio 流,或者也可以是独立被导流流对象。...fork - child_process.fork 是 spawn()特殊形式,用于在子进程运行模块, fork('./son.js') 相当于 spawn('node', ['....:对象,可以是: cwd ,字符串,子进程的当前工作目录 env,对象 环境变量键值 encoding ,字符串,字符编码(默认: 'utf8') shell ,字符串,将要执行命令 Shell(...在Windows ,命令行解析应当能兼容cmd.exe) timeout,数字,超时时间(默认: 0) maxBuffer,数字, 在 stdoutstderr 中允许存在最大缓冲(二进制),...stderr: 子进程已退出,退出码 0 stdout: 进程 0 执行。 stderr: 子进程已退出,退出码 0 stdout: 进程 2 执行。 stderr:

65420
领券