Questions tagged «stdout»

stdout是进程的默认输出文件描述符的名称。由于“ stdout”没有什么特别的,因此您*不应该*使用该标签。使用[io-redirection]标记来询问有关如何重定向输出的问题,使用[file-descriptors]来解决有关如何管理文件描述符的问题,使用[lock]来解决文件锁定的问题,以及使用[files]来解决关于以下问题的一般性问题:文件操作。

2
管道,数据如何在管道中流动?
我不了解数据在管道中的流动方式,希望有人可以澄清其中的情况。 我认为命令管道以逐行方式处理文件(文本,字符串数组)。(如果每个命令本身一行一行地工作。)文本的每一行都通过管道,命令不必等待前一个命令完成对整个输入的处理。 但似乎并非如此。 这是一个测试示例。有几行文字。我将它们大写,并重复每行两次。我这样做cat text | tr '[:lower:]' '[:upper:]' | sed 'p'。 要遵循此过程,我们可以“交互式”运行它-跳过中的输入文件名cat。管道的每一部分都逐行运行: $ cat | tr '[:lower:]' '[:upper:]' alkjsd ALKJSD sdkj SDKJ $ cat | sed 'p' line1 line1 line1 line 2 line 2 line 2 但是完整的管道确实在等我完成输入,EOF然后才打印结果: $ cat | tr '[:lower:]' '[:upper:]' | sed 'p' I am writing... …


3
在前一个命令写入STDOUT时在STDIN中键入另一个命令是否安全?
也许以前已经回答了这个问题,欢迎您链接到另一个答案... 如果我执行一个shell命令(在一个bashshell中),如下所示: make 然后,当输出make是通过从滚动STDOUT的的make命令,如果我输入make check并按enter之前的第一个命令执行完毕,当make命令终于完成下一个命令make check将选择权并运行。 我的问题很简单: 这危险吗? 这种紧急输入是否有潜在的意外行为? 为什么这样做会起作用?
21 bash  shell  stdout  stdin 

2
如何找出正在写入STDOUT的进程?
我有两个正在运行的流程实例。其中之一就是“可惜!” 和打印错误不会停止到STDOUT。 我想杀死破裂的过程,但是我必须确保不要终止错误的过程。它们都是在大约同一时间启动的,使用top它们,我可以看到它们都使用了大约相同数量的内存和CPU。我似乎找不到任何指向哪个进程表现不佳的信息。 最安全的事情是弄清楚哪个进程/ pid正在写入STDOUT。 有什么办法吗?

4
bash:/ dev / stderr:权限被拒绝
升级到新发行版本后,我的bash脚本开始出现错误: bash: /dev/stderr: Permission denied 在以前的版本中的Bash将在内部承认这些文件的名称(这就是为什么这个问题不是重复这一个),并做正确的事(TM) ,但是,这现在已经不再工作。如何才能成功再次运行脚本? 我尝试将运行脚本的用户添加到组中tty,但这没有什么区别(即使注销并重新登录后也是如此)。 我可以在命令行上重现它,而不会出现问题: $ echo test > /dev/stdout bash: /dev/stdout: Permission denied $ echo test > /dev/stderr bash: /dev/stderr: Permission denied $ ls -l /dev/stdout /dev/stderr lrwxrwxrwx 1 root root 15 May 13 02:04 /dev/stderr -> /proc/self/fd/2 lrwxrwxrwx 1 root root 15 May 13 …

4
输出到stdout并同时grep到文件中
我有一个将文本输出到的脚本stdout。我想在终端中看到所有这些输出,同时我想过滤一些行并将其保存在文件中。例: $ myscript Line A Line B Line C $ myscript | grep -P 'A|C' > out.file $ cat out.file Line A Line C 我想在终端中查看第一个命令的输出,并将第二个命令的输出保存在文件中。同时。我尝试使用tee,但没有结果,或者更好,结果相反。
18 grep  pipe  stdout  tee 

3
vim:通过命令行参数强制使用特定语法
当我想轻松阅读PostgreSQL模式时,我将其转储到stderr并重定向到vim: pg_dump -h localhost -U postgres dog_food --schema-only | vim - 这给出: vim 没有语法高亮显示模式,因为从stdin读取时没有文件扩展名,因此我使用以下代码: :set syntax=sql 这使: 作为vim一名懒惰的开发人员,我想通过传递命令行参数来强制使用SQL语法,从而避免了set syntax=<whatever>每次打开stdin数据时重新键入代码的麻烦。 有没有一种方法可以vim通过传递命令行参数来设置语法?

3
将stdout开到stderr吗?
我想将stdout从一个进程发送到另一个进程的stdin,而且还发送到控制台。例如,将stdout发送到stdout + stderr。 例如,我git edit别名如下: git status --short | cut -b4- | xargs gvim --remote 我希望将文件名列表也发送到屏幕xargs。 那么,有没有类似tee的工具可以做到这一点?这样我可以做类似的事情: git status --short | \ cut -b4- | almost-but-not-quite-entirely-unlike-tee | \ xargs gvim --remote

2
从少写行到文件
在此期间,vim我可以写一些行,从正在查看的文件到另一个文件。例如, :1,10 w outfile.txt 将第1至10行写入outfile.txt。 在使用来查看文件时可以做同样的事情less吗?
17 less  stdout 


5
bash:使用变量存储stderr | stdout重定向
有没有办法通过变量重定向stdout和stderr,例如在脚本中添加命令选项? 例如,我有一个脚本: #!/bin/bash -x TEST=">/dev/null 2>&1" OPT='-p -v' mkdir $OPT 123/123/123 $TEST 我可以看到OPT被替换为-p没有任何问题,bash将其解释为选项。但是重定向解释为目录名称。 $ ./test.sh + TEST='>/dev/null 2>&1' + OPT='-p -v' + mkdir -p -v 123/123/123 '>/dev/null' '2>&1' mkdir: created directory `123/123' mkdir: created directory `123/123/123' mkdir: created directory `>/dev' mkdir: created directory `>/dev/null' mkdir: created directory `2>&1' 有什么办法可以说bash,$ VAR是重定向的,而不是dirs的名字。 …

1
在进程仍在运行时旋转日志文件
我正在运行一个将标准输出和标准错误写入日志文件的进程/var/log/dragonturtle.log。无论如何,有没有旋转日志文件的过程,并且该进程可以继续写入新的日志文件而不会终止该进程? 当前发生了什么(鉴于下面的logrotate配置): 处理写入 /var/log/dragonturtle.log logrotate的移动/var/log/dragonturtle.log来/var/log/dragonturtle.log.1 流程继续写入 /var/log/dragonturtle.log.1 我想发生的事情: 处理写入 /var/log/dragonturtle.log 将副本/var/log/dragonturtle.log对数旋转/var/log/dragonturtle.log.1 Logrotate截断 /var/log/dragonturtle.log 流程继续写入 /var/log/dragonturtle.log /etc/logrotate.d/dragonturtle: /var/log/dragonturtle.log { daily missingok rotate 7 compress delaycompress notifempty create 644 dragonturtle dragonturtle }
16 logs  stdout  logrotate 


1
命令输出不在stderr或stdout中
我偶然发现了这个问题,所以我想知道这怎么可能? 标准运行命令: # zabbix_sender -c zabbix_agentd.conf -k mmysql.QCInserts -o 14 info from server: "Processed 0 Failed 1 Total 1 Seconds spent 0.000017" sent: 1; skipped: 0; total: 1 好的,让我们尝试仅获得第一行: # zabbix_sender -c zabbix_agentd.conf -k mmysql.QCInserts -o 14 | head -1 sent: 1; skipped: 0; total: 1 那标准头呢? # zabbix_sender -c …
16 shell  stdout  stderr 

1
vimdiff比较输出而不是文件
我正在尝试比较两个命令输出(无文件) vimdiff "$(tail /tmp/cachain.pem)" "$(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)" 我尝试过使用重定向,管道,vim - -c但是我必须缺少一些东西。有人可以帮忙吗?
15 vim  stdout  stdin  vimdiff 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.