Articles of stdout

一个命令的输出附加到另一个命令的输出

有没有办法将一个命令的标准输出附加到另一个命令的输出,并将组合的输出pipe道输出到另一个命令? 我曾经使用下面的方法(以ack-grep为例) # List all python, js files in different directories ack-grep -f –py apps/ > temp ack-grep -f –js -f media/js >> temp cat temp | xargs somecommand 有一种方法可以在单个命令中执行此操作吗?

Unix / C ++:打开新的terminal并将输出redirect到它

我的程序(Solaris 10上的C ++)通过wcout将输出从shell中写入terminal。 但是,当我在Sun Studio中执行它时,或者文件pipe理器没有terminal,并且输出显示在Sun Studio输出窗口中或根本就没有。 我想在这三种情况中的任何一种情况下打开自己的terminal窗口,并将wcout附加到此terminal窗口。 我希望这是由程序本身与C ++系统调用,而不是如何从某个shell或脚本执行程序。 因为在Studio IDE中执行并在文件pipe理器中双击将仍然具有相同的效果。 作为一个Windows程序员,对我来说似乎很自然,但我无法知道在Unix书籍和networking中如何做到这一点。 我是否要求错误的事情,难道我真的很难做,或者我错过了什么?

发送stderr / stdout消息来运行和陷阱出口信号

我正在处理错误并logging在我的bash脚本。 下面我已经包含了一个简单的代码片段来举例说明用例。 我想在我的脚本中实现以下function: 陷阱应该在下面的代码中触发onexit()函数 应该将stderr和stdout发送到log()函数,这将确保根据特定的日志格式将输出logging到日志文件(在下面的示例中进行了简化) 用下面的当前代码问题: 第一步不会被onexit函数困住,脚本继续执行第2步。很可能是因为stderr被传送到了logStd()。 我怎么能发送错误消息到logStd(),但仍然陷阱退出信号onexit()? parsing度: 添加set -o pipefail 通过添加local exit_status=${1:-$?}获取onexit()的退出状态 script.sh(在parsing后编辑) #!/bin/bash -E set -o pipefail # Perform program exit housekeeping function onexit { local exit_status=${1:-$?} log "onexit() called with param: $exit_status" exit $1 } # Simplified log function that sends input parameter to echo. This function is used within this […]

使用bash:将整数的位表示写入文件

我有一个二进制数据的文件,我需要在一定的位置replace几个字节。 我已经想出了以下指示bash的偏移量,并告诉我,它find了我想要的地方: dd bs=1 if=file iseek=24 conv=block cbs=2 | hexdump 现在,要使用“文件”作为输出: echo anInteger | dd bs=1 of=hextest.txt oseek=24 conv=block cbs=2 这似乎工作得很好,我可以查看hex编辑器中所做的更改。 问题是,“anInteger”将被写为该整数的ASCII表示(这是有道理的),但我需要编写二进制表示。 我想为此使用bash,脚本应该在尽可能多的系统上运行(我不知道目标系统是否安装了python或其他软件)。 如何告诉命令将input​​转换为二进制(可能来自hex)?

写在C的标准输出是什么意思?

写入“stdout”的程序是否写入文件? 屏幕? 我不明白什么意思写入标准输出。

内部捕获/redirect标准输出?

这似乎有点像一个计算系统101的问题,但我很难过。 我将来自C / C ++项目A的现有代码集成到我自己的项目B中.A和B都将链接到一个可执行的线程进程中。 项目A的代码广泛使用printf来输出。 这很好,但我也想把这个输出捕获到我自己的缓冲区中。 有一种方法,我可以从标准输出一旦printf电话已经写入它? 我不能分叉进程或pipe道。 我的努力poll()标准输出,或dup()它没有成功(我可能在这里做错了什么)。

如何创build一个读取输出和写入input的伪tty

我正在使用fork()和execvp()来产生一个必须相信它连接到交互式terminal以使其正常工作的进程。 一旦产生,我想要捕获进程中的所有输出,以及能够将input发送到进程。 我怀疑psuedo-ttys可能会在这里帮助。 有没有人有如何做到这一点片段?

用PythonredirectFORTRAN(通过F2PY调用)输出

我试图找出如何redirect输出从我已经生成一个Python接口通过使用F2PY的一些FORTRAN代码。 我试过了: from fortran_code import fortran_function stdout_holder = sys.stdout stderr_holder = sys.stderr sys.stdout = file("/dev/null","w") fortran_function() sys.stdout.close() sys.stderr.close() sys.stdout = stdout_holder sys.stderr = stderr_holder 这是在Python中redirect输出的事实上的方法,但在这种情况下似乎不起作用(即无论如何显示输出)。 我从2002年开始find一个邮件列表的post,说“有可能从pts设备读取消息,例如ttysnoop会这样做”。 关于ttysnoop的信息似乎很难在网上find(我不认为它已经在几年内得到了更新;例如, 谷歌对“ttysnoop”的第一个结果只有与tarballs,RPMs和.deb的死链接),并且这个端口到OS X的请求收到响应“没有运气,它需要一些我无法创build的特定于linux的utmpfunction”。 我打开任何build议如何redirect输出(它不必使用ttysnoop)。 谢谢!

写入stdin并从stdout读取(UNIX / LINUX / C编程)

我正在做一个任务,一个程序把一个文件描述符作为参数(一般来自父调用exec调用),并从一个文件中读取并写入一个文件描述符,在我的testing中,我意识到程序可以工作如果我使用0,1或2作为文件描述符,则不会发出错误。 这对我来说是有意义的,除了我可以写入标准input并显示在屏幕上。 有这个解释吗? 我一直认为stdin / stdout有一些保护,你肯定不能从标准输出到标准input或者fgets。 #include <stdlib.h> #include <stdio.h> #include <unistd.h> int main() { char message[20]; read(STDOUT_FILENO, message, 20); write(STDIN_FILENO, message, 20); return 0; }

什么是TTY,如何在Ubuntu上启用它?

我目前正在build立一个node.js服务器,我在这里使用debugging模块https://github.com/visionmedia/debug 。 我试图启用它,所以我可以在我的输出中得到彩色的debugging信息,但是我的terminal看起来像最后一个terminal屏幕在它说: When stdout is not a TTY, Date#toUTCString() is used, making it more useful for logging the debug information as shown below: 任何人都可以点亮这个? 谢谢。