gpt4 book ai didi

bash - 如何重定向写入 tty 的程序?

转载 作者:行者123 更新时间:2023-11-29 09:19:49 24 4
gpt4 key购买 nike

这是未重定向的输出(如果你不知道 module 是什么,那也没关系):

$ module help null

----------- Module Specific Help for 'null' -----------------------

This module does absolutely nothing.
It's meant simply as a place holder in your
dot file initialization.

Version 3.2.6

假设我想将其重定向到一个文件....

$ module help null > aaa.txt 

----------- Module Specific Help for 'null' -----------------------

This module does absolutely nothing.
It's meant simply as a place holder in your
dot file initialization.

Version 3.2.6

$ cat aaa.txt
$

嗯,它必须在stderr

$ module help null 2> aaa.txt 
This module does absolutely nothing.
It's meant simply as a place holder in your
dot file initialization.

Version 3.2.6

$ cat aaa.txt

----------- Module Specific Help for 'null' -----------------------
$

嘿!它正在重置我的重定向。这真的很烦人,我有两个问题:

  1. 我怎样才能实现我想要的,即将所有内容重定向到我的文件
  2. 他们为什么要做这么奇怪的事情?

另见 this相关问题。

编辑:有人在评论中提问,所以一些细节。这是在 64 位的 AIX 5.3 上。我有几乎完全可用的 python 2.6.5。我有 gcc 4.1.1 和 gcc 4.5.1,但没有多少库可以链接它们(util-linux-ng 库,其中包含答案中提到的脚本版本,无法为 getopt 部分编译)。我还有几个版本的 IBM XL 编译器 xlc。我一开始没有指定的原因是我希望有一些 shell 技巧,也许是 exec,而不是在外部程序中。

最佳答案

试试这个:

script -q -c 'module help null' /dev/null > aaa.txt

这在 shell 脚本中(非交互地)使用

$ script --version
script (util-linux-ng 2.16)

您也可以使用 expect

另见:Catching a direct redirect to /dev/tty .

关于bash - 如何重定向写入 tty 的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4056075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com