标签: stdout

Python:如何创建对引用的引用?

我传统上是Perl和C++程序员,所以如果我误解了Python的一些小问题,请提前道歉!

我想创建一个引用的引用.咦?好.Python中的所有对象实际上都是对真实对象的引用.那么,我如何创建对此引用的引用?

我为什么需要/想要这个?我重写sys.stdout和sys.stderr来创建一个日志库.我想要一个(二级)引用sys.stdout.

如果我可以创建对引用的引用,那么我可以创建一个通用的记录器类,其中init函数接收对将被覆盖的文件句柄引用的引用,例如sys.stdout或sys.stderr.目前,我必须对这两个值进行硬编码.

干杯,凯文

python stdout reference

1
推荐指数
1
解决办法
299
查看次数

Linux - 将命令的标准输出发送到 RSS 提要

我希望使用个人 RSS 提要进行系统报告,所以我想知道是否可以创建一个脚本,将其 1 美元发送到 RSS 提要 ala self_test_command > rss_report.sh。我目前也没有设置 RSS 提要,那么在 Linux 机器上设置 RSS 提要的最简单方法是什么?

linux rss stdout

1
推荐指数
1
解决办法
1295
查看次数

永久重定向stdout到Common Lisp(CCL)中的文件

我试图永久地将stdout重定向到一个文件,但我可以找到关于这样做的所有示例都涉及使用标准输出全局在let或内部打开文件中执行此操作.有没有办法可以进行应用程序范围的重定向?

编辑:这是我尝试使用标准输出重定向的方式:

(Setf *log* (open "/Users/Mike/Desktop/some.txt" :direction :output :if-exists :append))
(Setf *standard-output* *log*)
(print "Test")
Run Code Online (Sandbox Code Playgroud)

这会停止输出到REPL,但是没有任何内容显示在probe-file打印调用中的文件中(确实存在并且可以看到).

编辑:我尝试使用Dribble功能:

(Dribble "/Users/Mike/Desktop/some.txt")

(format t "hello")
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

错误:通用函数没有适用的方法:#STANDARD-GENERIC-FUNCTION CCL :: STREAM-SET-COLUMN#x30200006557F用参数调用时:(#0)执行:#时,在进程Listener(11)中.键入cmd- /继续,cmd-.要中止,cmd- \以获取可用重新启动的列表.如果继续:尝试再次调用类型:?其他选择.

stdout common-lisp ccl

1
推荐指数
1
解决办法
401
查看次数

将执行错误重定向到文件c ++

如何在bash中重定向c ++可执行文件的执行错误?我发现2>帮助尝试识别编译错误:

g++ example.cpp 2> compErr.txt
Run Code Online (Sandbox Code Playgroud)

但是使用该命令运行可执行文件仍会将错误发送到stdout:

$ ./a.out 2> e.txt
Floating point exception (core dumped)
Run Code Online (Sandbox Code Playgroud)

c++ linux bash stdout stderr

1
推荐指数
1
解决办法
570
查看次数

Go 的分页输出

我正在尝试使用$PAGER或手动调用从 golang 打印到标准输出,more或者less允许用户轻松滚动浏览许多选项。我怎样才能做到这一点?

stdout go pager

1
推荐指数
1
解决办法
1971
查看次数

TCL 脚本 - exec 将文本刷新到我的标准输出

如何在不“等待”结果 exec 返回的情况stdout下将exec命令的“刷新”到我的脚本中stdout

例如,在以下脚本中,我希望git clone输出立即出现在我的脚本上下文中:

#!/usr/bin/tclsh

# git outputs progress of the clone download but it isn't visible in this script's context. How can I flush it? 
exec git clone /path/to/some/repo.git
Run Code Online (Sandbox Code Playgroud)

我猜我需要某种pipe "|"tee和文件重定向的组合。似乎无法正确理解。

stdout pipe tcl exec

1
推荐指数
1
解决办法
1269
查看次数

模拟 bufio.NewScanner 的标准输出流

我想为我使用bufio.NewScanner和的实用程序编写一个测试Scan()。我通常使用它stdout,现在我想模拟一小段流,我可以在其中返回一些静态字符串以进行测试。

bufio.NewScanner(r io.Reader)需要一个Reader但只需要一个read方法。通过阅读源代码,我无法弄清楚它从哪个缓冲区读取或如何传入。

我怎样才能以简短而简洁的方式嘲笑它?

testing io stdout mocking go

1
推荐指数
1
解决办法
899
查看次数

在exec()中重定向STDOUT和STDERR ......没有shell

我试图将Perl5用于fork()子进程.子进程应该exec()另一个程序,其重定向STDIN到一个命名管道,并STDOUTSTDERR日志文件.父进程继续在循环中运行,使用waitpid并检查$?重新启动子进程以防它以非零退出状态死亡.

exec()函数的Perl文档说:

如果LIST中有多个参数,则使用LIST中的参数调用execvp(3).如果LIST中只有一个元素,则检查参数是否为shell元字符,如果有,则将整个参数传递给系统的命令shell进行解析(这/bin/sh -c在Unix平台上,但在其他平台上有所不同).如果参数中没有shell元字符,则将其拆分为单词并直接传递给execvp,这样更有效.例子:

exec '/bin/echo', 'Your arguments are: ', @ARGV;
exec "sort $outfile | uniq";
Run Code Online (Sandbox Code Playgroud)

这听起来很酷,我想在没有中间shell的情况下运行我的外部程序,如这些示例所示.不幸的是,我无法将其与输出重定向(如/bin/foo > /tmp/stdout)相结合.

换句话说,这不起作用:

exec ( '/bin/ls', '/etc', '>/tmp/stdout' );
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:如何在STD*不使用shell的情况下为我的子命令重定向文件?

perl stdin stdout exec stderr

1
推荐指数
1
解决办法
836
查看次数

通过管道捕获标准输出和标准错误

我想从子进程中读取stderr和stdout,但是它不起作用。

use std::process::{Command, Stdio};
use std::io::{BufRead, BufReader};

fn main() {
    let mut child = Command::new("./1.sh")
        .stdout(Stdio::piped())
        .stderr(Stdio::piped())
        .spawn()
        .unwrap();

    let out = BufReader::new(child.stdout.take().unwrap());
    let err = BufReader::new(child.stderr.take().unwrap());

    out.lines().for_each(|line|
        println!("out: {}", line.unwrap())
    );
    err.lines().for_each(|line|
        println!("err: {}", line.unwrap())
    );

    let status = child.wait().unwrap();
    println!("{}", status);
}
Run Code Online (Sandbox Code Playgroud)

1.sh

use std::process::{Command, Stdio};
use std::io::{BufRead, BufReader};

fn main() {
    let mut child = Command::new("./1.sh")
        .stdout(Stdio::piped())
        .stderr(Stdio::piped())
        .spawn()
        .unwrap();

    let out = BufReader::new(child.stdout.take().unwrap());
    let err = BufReader::new(child.stderr.take().unwrap());

    out.lines().for_each(|line|
        println!("out: {}", line.unwrap())
    );
    err.lines().for_each(|line|
        println!("err: {}", …
Run Code Online (Sandbox Code Playgroud)

stdout pipe stderr rust

1
推荐指数
1
解决办法
571
查看次数

即使成功,如何获取 CodeDeploy 事件日志?

我使用 AWS CodeDeploy 处理部署过程。当 appspec.yml 中指定的脚本之一出现故障时,您会得到这个漂亮的小日志输出,返回 STDOUT:

在此处输入图片说明

但是,当所有事件都成功时,似乎没有办法看到STDOUT:

在此处输入图片说明

即使部署事件成功,有没有办法查看所有 STDOUT?

logging stdout amazon-web-services aws-code-deploy

1
推荐指数
1
解决办法
778
查看次数

标签 统计

stdout ×10

stderr ×3

exec ×2

go ×2

linux ×2

pipe ×2

amazon-web-services ×1

aws-code-deploy ×1

bash ×1

c++ ×1

ccl ×1

common-lisp ×1

io ×1

logging ×1

mocking ×1

pager ×1

perl ×1

python ×1

reference ×1

rss ×1

rust ×1

stdin ×1

tcl ×1

testing ×1