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

Linux如何在Bash中将标准错误stderr重定向stdout标准输出

命令输出重定向文件或将其通过管道传递另一个命令时,你可能会注意错误消息已打印在屏幕上。 在Bash其他Linux Shell,执行程序时,它使用三个标准I/O流。...command > file command 1> file 要重定向标准错误流(stderr),请使用2>运算符: command 2> file 你可以stderrstdout都写到两个单独文件...重定向stdout 程序输出保存到文件时,通常会将stderr重定向stdout,以便所有内容都保存在一个文件。...要将stderr重定向stdout并将错误消息发送到与标准输出相同文件,请使用以下命令: command > file 2>&1 > filestdout重定向file,2>&1stderr重定向...重定向顺序很重要。例如,以下示例仅stdout重定向file。以下这种情况是因为stderr重定向stdout,然后stdout重定向到了file。

3.3K20

Bash 如何标准错误stderr转向标准输出stdout

命令输出转到文件或者另外一个命令时候,你可能会注意错误提示打印在屏幕上。 在 Bash 其他 Linux shells ,当程序执行时,它使用三个标准 I/O 流。...command > file command 1> file 标准错误转向,使用2>操作符: command 2> file 你也可以标准错误stderr标准输出stdout转向不同文件: command...file,而2>&1标准错误stderr转向当前标准输出stdout。...例如,下面的例子,仅仅标准输出stdout转向文件file。这是因为标准错误stderr被转向stdout发生在标准错误stdout被转向file之前。...在 Bash &>2>&1 一个意思: command &> file 四、总结 在使用命令行时候,理解转向和文件描述符概念是非常重要

1.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

Shell脚本攻略04-玩转文件描述符及重定向

我们甚至可以某个文件描述符内容重定向另一个文件描述符。 下面给出一些对文件描述符进行操作和重定向例子。...理论知识 在编写脚本时候会频繁使用标准输入(stdin)、标准输出(stdout标准错误(stderr)。 通过内容过滤输出重定向文件是我们平日里基本任务之一。...,stdout重定向另一个文件 你可以stderr单独重定向一个文件,stdout重定向另一个文件: [root@entel1 Templates]# ls + 1> 1.txt 2>2.txt...stdout重定向同一个文件 还可以利用下面这个更好方法stderr转换成stdout,使得stderrstdout 都被重定向同一个文件 $ cmd >output.txt 2...如果你不想让终端充斥着有关stderr繁枝末节,那么你可以stderr输出重定向 /dev/null cmd 2>/dev/null ---- 既可以数据重定向文件,还可以提供一份重定向数据副本作为后续命令

84710

《Linux命令行与shell脚本编程大全》第十五章 呈现数据

15.1 理解输入输出 现在知道两种显示脚本输出方法 1)在显示器屏幕上显示 2)输出文件重定向文件 15.1.1 标准文件描述符 Linux系统每个对象当做文件处理。...shell或shell运行程序脚本出错时生成错误消息都会发送到这个位置。 默认情况下STROUTSTDERR指向同样地方(显示器)。但是STDERR不会随着STDOUT重定向而发生改变。...$ls -al test1 test2 test3 badfile &> AllLog.txt 这样表示STDOUTSTDERR重定向同一个文件AllLog.txt中了。...15.2 在脚本重定向输出 有两种方法: 1)临时重定向行输出 2)永久重定向脚本所有命令 15.2.1 临时重定向 可以单独一行重定向STDERR。...>> cat命令输出追加到由$outfile变量指定文件。 cat命令输入不在取自标准输入,而是被重定向脚本存储数据。 EOF符号标记了追加到文件数据起止。

1.3K60

python crontab 坑

输出 要将crontab命令输出记录到日志文件,可以使用重定向,不仅要重定向stdout也要重定向stderr,因为Python解释器会将异常输出到stderr。...,例如SHELL、PATHHOME等,一定要注意PATH可不是用户自定义PATH。...我们往往会在.bash_profile文件定义一些全局环境变量,但是crontab执行时并不会加载这个文件,所以你在shell中正常执行程序,放到crontab里就不行了,很可能就是因为找不到环境变量了...要解决这个问题只能是自己加载环境变量了,可以在shell脚本添加source $HOME/.bash_profile,或者直接添加到crontab。...解决方法: 方法一:在程序可能输出中文字符串都加上encode('utf-8'); 方法二:在crontab中加上PYTHONIOENCODING=utf-8,Pythonstdout/stderr

97510

解决paramiko执行命令超时问题

摘录原文: paramiko远程执行后台脚本“阻塞”问题 我写远程命令通道上线之后,发现在远程脚本后台再执行另一个脚本,通道会一直等待后台脚本执行完成才会返回,有时甚至会僵死。...(): result_info += line print result_info test.shrun.sh传到远程服务器上,比如放到192.168.1.10:/tmp/下。...2、解决办法 远程脚本标准输出stdout重定向错误输出stderr即可,test.py 修改如下: import paramiko client = paramiko.SSHClient() client...其实原因很简单,因为bash /tmp/test.sh & 虽然是后台执行,但是依然会产生标准输出,一旦产生标准输出,paramiko就会认为命令还未执行完成,且stdoutbuffer大于stderr...这里只要将脚本执行标准输出重定向错误输出(1 &2),然后paramiko就可以使用stderr快速读取远程打屏信息了。

3.7K20

Shell错误处理探索

它将标准输出(stdout)保存到变量 变量$_0:指令输出stdout stdout:指令输出stderr 之后,又执行了语句echo -n "_try_out=' stdout:指令输出stderr..._1=( ... )stdout保存到了变量_1。这里感叹号用法老方法相同。...此时 变量$_1:指令输出stderr(之前保存在stdout之中) stderr:"_try_out='指令输出stdout' _try_return=指令返回码 " 之后之前类似的语句echo...此时 stdout:"_try_err='指令输出stderr'" stderr:"_try_out='指令输出stdout' _try_return=指令返回码 " 最后语句2>&1stderr...最主要问题是这个方法给脚本带来了额外开销,流重定向影响倒是不大,关键是echo指令替换最后eval。

2.8K10

shell极简教程(二)

默认情况下,command > file stdout 重定向 file,command < file stdin 重定向 file。   ...如果希望 stdout stderr 合并后重定向 file,可以这样写: $command > file 2>&1   或 $command >> file 2>&1   如果希望对 stdin... stdout重定向,可以这样写: $command file2   command 命令 stdin 重定向 file1, stdout 重定向 file2。...n > file 文件描述符为 n 文件重定向 file。 n >> file 文件描述符为 n 文件以追加方式重定向 file。 n >& m 输出文件 m n 合并。...如果希望屏蔽 stdout stderr,可以这样写: $ command > /dev/null 2>&1 十六,文件包含 像其他语言一样,Shell 也可以包含外部脚本外部脚本内容合并到当前脚本

5.3K70

shell入门第十讲

那么在Linux标准流stdoutstderr也同样如此。如果我们使用了Linux标准流功能,当我们执行一个命令成功后,那么终端打印信息也将会被传送至stdout。...当我们执行命令失败后,那么终端打印报错信息也将会被传送至stderr。 1.1、stdout 输出重定向我们一般使用 >来表示,比如信息输出重定向一个文件。...判断出来这是执行成功,因此我使用stdout正确信息传给c.txt这个文件。c.txt我可以不必提前创建,重定向输出stdout会自动帮我们建立好一个文件并且打印信息写入这个文件。...1.2、stderr 错误重定向我们一般使用 2> 来表示,比如错误信息重定向一个文件。...1.4、追加信息输出重定向 我们上面的stdoutstderr只是信息输出到一个文件,如果再次重定向输出的话,文件之前内容将会被覆盖掉,只会写入最新内容文件,比如: bash [root@

85920

shell脚本还能这么写?

变量替换 在平常开发脚本会依赖很多配置,例如监听端口、配置文件之类可变参数,如果我们将其硬编码脚本,那么改起来就是牵一发动全身了,很麻烦,不可靠。.../bin/bash # set命令奇妙用途留在文章末尾 set -eu # nginx配置文件在不同环境,位置可能不同,所以需要将其抽离成可配置变量脚本来引用 NGINX_CONFIG_FILE=.../bin/bash # set命令奇妙用途留在文章末尾 set -eu # nginx配置文件在不同环境,位置可能不同,所以需要将其抽离成可配置变量脚本来引用 NGINX_CONFIG_FILE=...,可以改变我们脚本执行行为,让我们对脚本把握调试更强,下面是常用几种set指令,相信你会喜欢: set -e: bash脚本遇到错误立即退出 set -n: 检查脚本语法但不执行 set -u...重定向stdout 脚本开发过程,在我们使用管道时,默认只是传递stdout,在某种场景下,比如需要根据stderr内容进行判断,默认情况下就不支持,需要我们进行特殊处理,stderr重定向stdout

1.3K20

linux: 深入理解Shell输出重定向错误处理

在Shell,有三种主要I/O流: stdout(标准输出)- 文件描述符为1 stderr(标准错误)- 文件描述符为2 stdin(标准输入)- 文件描述符为0 如图展示了两个 nc 命令运行情况...分析第一个命令: bash nc -zv 10.0.0.1 443 2>&1 >> /dev/null 这个命令 2>&1 表示标准错误重定向当前标准输出位置,但是这个操作是在 >> /dev...当我们想要丢弃所有输出时,正确方法是先重定向 stdout /dev/null,然后再将 stderr 重定向 stdout。这样,所有的输出都不会显示在终端上。...在系统管理自动化任务,经常需要确保输出不会干扰脚本执行或是污染日志文件。因此,合理地利用重定向来控制脚本输出,是每一个系统管理员脚本开发者都需要掌握技能。...通过上述分析,我们可以看到,即使是在看似简单重定向操作,不同顺序方式也会导致完全不同结果。掌握这些细节,将使我们在Shell脚本开发更加得心应手。

38810

nodejs写bash脚本终极方案!

◆ 前言 最近在学习bash脚本语法,但是如果对bash语法不是熟手的话,感觉非常容易出错,比如说:显示未定义变量shell变量没有定义,仍然是可以使用,但是它结果可能不是你所预期。...; } console.log(`stdout: ${stdout}`); }); 这里需要注意是,首先exec是异步,但是我们bash脚本命令很多都是同步。...◆ 安装 npm i -g zx 需要环境 Node.js >= 14.8.0 脚本写入扩展名为 .mjs 文件,以便能够在顶层使用await。...在ESM模块,Node.js 不提供__filename __dirname 全局变量。...由于此类全局变量脚本中非常方便,因此 zx 提供了这些以在 .mjs 文件中使用(当使用 zx 可执行文件时) require也是commonjs导入模块方法, 在 ESM 模块,没有定义 require

3.9K20
领券