标签: stdout

显示Bash命令的输出并将输出保存在变量中

我不确定它是否可行,但我想要做的是运行bash命令并将输出存储在变量中并显示它就像我正常启动命令一样.这是我的代码:

VAR=`svn checkout $URL`
Run Code Online (Sandbox Code Playgroud)

所以我想将输出存储在VAR中并仍然看到结果(因为svn checkout需要很长时间,我不能在之后回显$ VAR ...)

谢谢

bash stdout backticks

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

如何编辑终端中的现有文本(并移动光标)?

我看过这个演示一次打印出一段文字(就像你在打字时得到的那样some-command --help),然后它又跳回到文本中的几个关键词并改变了文字颜色,之后它已经在终端打印出来了.

这对我来说似乎很疯狂.他们是怎么做到的?

开始考虑它,我猜stdout并且stdin在技​​术上是一个"IO流",所以也许这是一个跟踪光标位置的持久变量?我记得在构建语言解析器时做了类似的事情.

目标是这样的:假设您在控制台中键入以下内容,并输出一个空白数组,因为在Node.js中,它都是异步的,我们不想每次在控制台中编写异步函数:

$ node app.js
> App.User.all()
=> []
Run Code Online (Sandbox Code Playgroud)

然后,当执行异步回调时,您返回并编辑=> []以包含结果:

$ node app.js
> App.User.all()
=> [#<User id:1>, #<User id:2>...]
Run Code Online (Sandbox Code Playgroud)

即使有很多其他问题要解决这个问题,至少知道如何实现也是很棒的(与这个问题无关.我知道你可以定义一个全局回调并做类似的事情App.User.all(_c)).

如何在打印后编辑终端输出?

terminal stdout node.js

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

C将stdout恢复到终端

我正在使用多线程程序.

首先,我将我的stdout重定向到某个文件.这里没有问题(我用的dup2(fd, 1)地方fd是该文件的文件描述符).

之后,我需要再次将我的标准输出重定向到终端.

我的第一个方法:

      /*Declaration*/
      fpost_t  stream_sdout;
      /*code*/
      if ( fgetpos( stdout, &stream_sdout) == -1 )
          perror(Error:);
Run Code Online (Sandbox Code Playgroud)

它说非法寻求.
不知道为什么会这样.
但是,如果我fsetpos(stdout, &stream_stdout)让它工作,那么我只需要使用它应该工作.

我的第二个想法是将stdout复制dup2(stdout, 4)到位置4的文件描述符表.但这也不起作用.

如何将标准输出切换回其原始目标(终端,管道,文件等)?

c stdout

20
推荐指数
2
解决办法
3万
查看次数

Python - 在将stdout重定向到文件之后将其重置为正常

在我的python程序开始时,我有以下行:

sys.stdout = open('stdout_file', 'w')
Run Code Online (Sandbox Code Playgroud)

在我的程序中途,我想将stdout设置回正常的标准输出.我该怎么做呢?

python stdout

20
推荐指数
3
解决办法
1万
查看次数

注意:使用未定义的常量STDOUT - 假设为'STDOUT'

我正在尝试在Xampp中设置Amazon Aws Php SDK.

安装SDK后,我尝试使用以下代码从Amazon S3下载存储桶.

<?php

error_reporting(-1);
ini_set('display_errors', 'on');

include_once ('aws/aws-autoloader.php');
use Aws\S3\S3Client;

$client = S3Client::factory(array(
     'key'    => '__my__key__',
     'secret' => '__secret__key__'
));

$destination = 'downloaded_bucket';
$source_bucket = '__my__bucket__name';
$key_prefix = '';
$options = array('debug'=>true);

$client -> downloadBucket($destination,$source_bucket,$key_prefix,$options);
?>
Run Code Online (Sandbox Code Playgroud)

现在从我的浏览器执行此PHP,我收到以下错误.

Notice: Use of undefined constant STDOUT - assumed 'STDOUT' in __my__path\Aws\S3\Sync\AbstractSyncBuilder.php on line 294
STDOUT
Warning: fwrite() expects parameter 1 to be resource, string given in __my__path\Aws\S3\Sync\DownloadSyncBuilder.php on line 124
STDOUT
Warning: fwrite() expects parameter 1 to be resource, …
Run Code Online (Sandbox Code Playgroud)

php xampp stdout amazon-s3 amazon-web-services

20
推荐指数
2
解决办法
8907
查看次数

管道命令链,每个输出状态到标准错误

我在 bash 脚本中有一系列管道命令,将标准输出管道到标准输入:

prog1 | prog2 | prog3
Run Code Online (Sandbox Code Playgroud)

他们每个人都输出一些标准错误。他们中的一些输出覆盖前一行,一些没有,有些两者都做:例如输出几行输出,然后在shell中有一个更新的“状态栏”。例如,curl 可以将下载进度输出为状态栏。

输出相当不清楚,因为状态栏可能会在一个进程的输出和另一个进程的输出之间闪烁。

有没有办法让各种输出更清晰,例如

  • 明确哪个输出行来自链中的哪个程序?
  • 让所有状态栏同时可见,不闪烁?

闪烁示例:

在此处输入图片说明

bash stdin stdout pipe stderr

20
推荐指数
2
解决办法
273
查看次数

stdout并需要刷新它C++

我有一些C++代码使用cout语句进行调试,由于某些原因我不能打印所有数据,除非我最后做了std::cout.flush();.

我不太明白为什么需要这种刷新操作.

有人有任何见解吗?

c++ stdout flush

19
推荐指数
2
解决办法
3万
查看次数

双括号在函数调用中意味着什么?例如func(stuff)(东西)?

原标题:

" 帮我理解这个奇怪的Python成语?sys.stdout = codecs.getwriter('utf-8')(sys.stdout) "

我一直用这个成语在Python 2的utf-8中打印出一堆标准的内容.*:

sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
Run Code Online (Sandbox Code Playgroud)

但说实话,我不知道(sys.stdout)它在做什么.它让我想起了一个Javascript闭包或其他东西.但我不知道如何在Python文档中查找这个习语.

你们这些优秀的人可以解释一下这里发生了什么吗?谢谢!

python unicode stdout codec

19
推荐指数
2
解决办法
4142
查看次数

从python中运行交互式命令

我有一个脚本,我想在python(2.6.5)中运行,遵循以下逻辑:

  • 提示用户输入密码.看起来像("输入密码:")(*注意:输入不回显到屏幕)
  • 输出无关信息
  • 提示用户回复("Blah Blah filename.txt blah blah(Y/N)?:")

最后一个提示行包含我需要解析的文本(filename.txt).提供的响应无关紧要(只要我可以解析该行,程序实际上可以在不提供响应的情况下退出)

我的要求有点类似于在python脚本中包装交互式命令行应用程序,但是那里的响应看起来有点令人困惑,即使OP提到它不适合他,我仍然会挂起.

通过环顾四周,我得出的结论subprocess是这样做的最佳方式,但我遇到了一些问题.这是我的Popen系列:

p = subprocess.Popen("cmd", shell=True, stdout=subprocess.PIPE, 
stderr=subprocess.STDOUT, stdin=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)
  • 当我打电话给read()readline()打开时stdout,提示是打印机到屏幕并挂起.

  • 如果我叫write("password\n")stdin,提示被写入屏幕,它挂起.write()未写入文本(我没有光标移动新行).

  • 如果我调用p.communicate("password\n"),与write()相同的行为

我在这里寻找一些关于输入的最佳方式的想法,stdin如果你感觉很慷慨,可能如何解析输出中的最后一行,尽管我最终可能会想到这一点.

python stdin subprocess interactive stdout

19
推荐指数
1
解决办法
3万
查看次数

将QProcess输出读取为字符串

我有一个像这样使用QProcess的代码.

int main(int argc, char *argv[])
{
    int status=0;
    QProcess pingProcess;
    QString ba;
    QString exec = "snmpget";
    QStringList params;
     params << "-v" << "2c" << "-c" << "public" << "10.18.32.52" <<    ".1.3.6.1.4.1.30966.1.2.1.1.1.5.10";
    status=pingProcess.execute(exec, params);
    pingProcess.close();
}
Run Code Online (Sandbox Code Playgroud)

这输出以下内容.

SNMPv2-SMI::enterprises.30966.1.2.1.1.1.5.10 = STRING: "0.1"
Run Code Online (Sandbox Code Playgroud)

我想把这个输出作为字符串.我搜索了这个,我找不到解决方案.提前致谢.

c++ qstring qt stdout qprocess

19
推荐指数
3
解决办法
3万
查看次数