Questions tagged «stdout»

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

2
快速测试所有键盘按键的脚本
我需要检查一些笔记本电脑的键盘按键,以便尽快提高速度。 对于该特定任务,我什么都没找到,所以我的想法是一个脚本,该脚本可以读取已按下的键并知道所有键盘键,因此我可以快速对其进行重击并报告尚未按下的键。我想我可以使用showkeyor或xevgrepping输出来实现: xev | grep keysym 样本输出: state 0x10, keycode 46 (keysym 0x6c, l), same_screen YES, state 0x10, keycode 33 (keysym 0x70, p), same_screen YES, state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, state 0x10, keycode 51 (keysym 0x5d, bracketright), same_screen YES, state 0x10, keycode 36 (keysym 0xff0d, Return), …
14 bash  grep  awk  keyboard  stdout 

2
从已经运行的脚本重定向stderr
我已经运行脚本好几天了。我将stdout重定向到$HOME/mylog,但没有重定向stderr,因为我认为上面没有任何内容。突然,成千上万的线路开始在stderr上运行,所以我暂停了工作。$HOME/myerr从现在开始,是否有一种方法可以将stderr重定向到,而无需重新启动脚本? 我在盒子上有sudo访问权限,它是OSX。 也许有一些使用工具陷阱的东西? 我不会丢失脚本到目前为止所做的工作,并从头开始重新启动它。有没有一种方法可以在磁盘上“转储内存中的对象”,冻结程序,编辑变量(例如文件描述符)并使用新的上下文恢复?

3
直接输出到管道和标准输出
我想知道是否可以通过管道将命令的输出定向到标准输出。因此,例如,fortune打印一个幸运饼干并将其复制到剪贴板: $ fortune | tee >(?stdout?) | pbcopy "...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and the Ugly)." (By Matt Welsh)
14 bash  pipe  stdout  tee 

2
是什么阻止stdout / stderr交错?
假设我运行一些流程: #!/usr/bin/env bash foo & bar & baz & wait; 我像这样运行上面的脚本: foobarbaz | cat 据我所知,当任何进程写入stdout / stderr时,它们的输出都不会交错-stdio的每一行似乎都是原子的。这是如何运作的?哪个实用程序控制每行的原子性?
13 shell  osx  stdout  output  stderr 



6
从现在开始的某个时候做一些事情(也许还会在控制台中显示结果)
我使用Ubuntu服务器16.04,并且希望at在当前会话中使用该实用程序从现在开始1分钟(例如echo)进行操作,而没有给出具体的日期和时间-比当前时间提前1分钟。 这失败了: echo 'hi' | at 1m 我之所以选择at,sleep是因为睡眠妨碍了当前会话,因此更适合于延迟另一会话中的命令,而不是我们大多数时间都在使用的命令。航空(AFAIR),at这种举止不会妨碍我的会议。 更新_1 通过Pied Piper的回答,我已经尝试过: (sleep 1m; echo 'hi') & 我对此方法有疑问:“ hi”流打印在我的主要提示内,并且还在_包含它的主要提示下添加了一个空的辅助提示(),请参见: USER@:~# (sleep 1m; echo 'hi') & [1] 22731 USER@:~# hi ^C [1]+ Done 更新_2 通过彼得·科德的回答,我尝试过: (sleep 2 && echo -e '\nhi' && kill -WINCH $$ &) 看来,这在Bash 4.4中正常运行,但在某些旧版本中似乎无效(请参见答案中的注释)。我个人在自己的环境中使用Bash 4.3。
12 console  stdout  at  sleep  delay 

6
可以缓冲标准输入或文件的程序
除了使用临时文件提供帮助之外,还有一种方法/程序可以缓冲来自的输入,stdin但直到得到时才输出内容EOF。我也不想使用shell变量(例如buffer=$(cat))。 该程序的行为应如下所示(假设程序名称为buffered-cat): $ buffered-cat line 1 line 2 line 3 ^D # Ctr-D here(End of Line) 现在程序已接收^D,buffered-cat输出内容 line 1 line 2 line 3
12 shell  stdout  buffer 

1
为什么发出相同的命令可以在tty中创建比在pts / gnome-terminal中更多的输出?
gnome终端: $ sudo update-grub [sudo] password for user: Generating grub configuration file ... Found background image: .background_cache.png Found linux image: /boot/vmlinuz-3.16.0-4-amd64 Found initrd image: /boot/initrd.img-3.16.0-4-amd64 done tty1由Ctrl+ Alt+ 访问F1: $ sudo update-grub [sudo] password for user: Generating grub configuration file ... Found background image: .background_cache.png Found linux image: /boot/vmlinuz-3.16.0-4-amd64 Found …

4
如何限制命令输出在bash中可用的行数?
我开始使用后台下载一个大文件 $ nohup wget http://example.tld/big.iso & 这也给了我一个nohup.out包含的输出的文件wget。 现在,如果以后要观看下载过程,可以使用,$ tail -f nohup.out但是填充终端窗口的速度比我期望的要快。我想看到的是最后一行不断更新(就像wget单独使用时一样)。 我尝试过,$ tail -n 1 -f nohup.out但似乎只影响最初的拖尾。 一般来说,如果可以限制(在这种情况下为1)命令输出具有可用/可见的行数,则可以解决此问题。将输出保存在循环缓冲区中的某种方式–只需考虑正常的进度条即可$ wget example.tld/big.iso打印。 有这样的解决方案吗? 还是我以错误的方式爬树?(意味着,限制nohup输出或执行其他操作会更容易吗?)
11 bash  tail  nohup  stdout 

5
grep如何抑制不匹配文件的显示?
我正在尝试使用来查找包含特定单词的文件grep。目录中有许多文件(> 500) 我运行的命令 $ grep 'delete' * 输出量 validate_data_stage1:0 validate_data_stage2:0 validate_data_stage3:0 validate_data_stage4:0 validate_data_stage5:0 validate_input_stage1:0 validate_input_stage2:0 validate_input_stage3:0 validate_input_stage4:0 .... and hundred of such lines 这些是不包含给定匹配项的文件。我想禁止这些行显示到标准输出。我知道-qswitch,但是那样会抑制完整的输出,这是我不想要的。 我怎么做?


2
在远程活动终端中执行命令
假设您打开了一个终端仿真器(T1),其PID为6350。 在另一个终端上,键入以下命令(C1): echo "ls\n" > /proc/6350/fd/0 这会ls在T1中写入新行,但不会执行它。为什么? 我也尝试使用cat|bashwith,echo "ls\n" > /proc/catid/fd/0但仍未执行。 如何将命令回显到另一个终端并执行命令? 可能的答案: $ mkfifo toto; $ bash < toto; $ echo "ls" > toto; 在这种情况下,您不能再直接在终端中写入(所有显示的内容都与命令(C1)在该终端中显示内容的方式相同。

2
连接STDOUT和STDIN是什么意思?
我正在读一本书,上面写着: 每个过程至少具有三个可用的通信通道:“标准输入”(STDIN),“标准输出”(STDOUT)和“标准错误”(STDERR)。 大多数命令接受来自STDIN的输入,并将其输出写入STDOUT。他们将错误消息写入STDERR。该约定使您可以像构建模块一样将命令串在一起以创建复合管道。 Shell将符号<,>和解释>>为将命令的输入或输出重新路由到文件或从文件重新路由的指令。 要将一个命令的STDOUT连接到另一个命令的STDIN,请使用| 通常称为管道的符号。 ps -ef | grep httpd 因此,基本上说的是,标准输入是允许用户写入文件的命令,而标准输出是具有bash shell将输出写入到shell的命令,而标准错误就像输出,但仅文件系统出错时调用。然后我们进入连接STDOUT和STDIN的部分,我迷路了。

1
`docker logs foo | less不可搜索或不可滚动,但docker logs foo 2>&1 | 更少`是
使用任何一个都可以阅读文本。但是只有使用stderr重定向,才能滚动或键入/ somepattern并获得匹配项。 没有它,搜索将给出“没有要搜索的内容(按RETURN)”和〜的列。 既然,stderr和stdout是不一样的,但是为什么直到我开始用更少的东西做完之后,为什么stderr和stdout却不显示它们相同? 这也许是一些我不理解的奇怪的多窗口vim东西。有什么想法吗?
10 pipe  less  stdout  stderr 

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.