帮酷LOGO
0 0 评论
文章标签:命令行  TERM  文件  OUT  Comma  输出  保存  终端  


问题:

为了交付,我们需要将程序的完整输出打印到txt文件。 还需要执行命令"time"来打印脚本的执行时间。


#!/bin/bash


time./blur-effect 4k.png 4k_out16.png 16 15 &>> Output.txt 



我遇到的问题是程序的输出可以正确地输出到txt文件,但执行时间的却终端中显示,但它必须也要打印在txt文件中,提前感谢任何的提示或帮助。


回答 1:

如果你将命令包装在命令组或subshell中,则应该可以按照你想要的方式工作:


{ time./blur-effect 4k.png 4k_out16.png 16 15 ; } &>> Output.txt 



或者


(time./blur-effect 4k.png 4k_out16.png 16 15) &>> Output.txt 



请参见文件中 time写入输出,为什么需要括号


回答 2:

在Bash中 time 是管道的 shell 关键字它解释流重定向仅在定时命令上发生; 它也恰好是一个常见的 *nix 实用程序:


$ type -a time


time is a shell keyword


time is/usr/bin/time



如果要将流重定向到 time 或从 time 重定向,可以使用命令组或sub-shell如 steeldriver 的回答中所述,或者明确调用 time(1) 实用程序:


/usr/bin/time COMMAND... &> LOGFILE



或者,如果你不确定 time的完整路径


time="$(which time)"


"$time" COMMAND... &> LOGFILE



P.S. 你可以将 time(1) 命令的输出保存到未连接到命令错误输出(这是默认的)标准的文件,以防你希望保留使用 -o 选项不改变的程序错误输出的定时标准 。 -a 使 time 附加到该文件,而不是覆盖它。


/usr/bin/time [-a] -o/path/to/time.log COMMAND...>/path/to/command-stdout.log 2>/path/to/command-stderr.log






文章标签:COM  文件  COMM  Comma  命令行  OUT  TERM  终端  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语