在QShell中使用unix时间函数
我试图创建一个QShell命令来输出完成任务所需的时间。我的命令在cygwin中运行时看起来很好,但在QShell中不会产生任何结果。例如,这是我用来获取ls的实时数据的命令在QShell中使用unix时间函数,unix,ibm-midrange,Unix,Ibm Midrange,我试图创建一个QShell命令来输出完成任务所需的时间。我的命令在cygwin中运行时看起来很好,但在QShell中不会产生任何结果。例如,这是我用来获取ls的实时数据的命令 (time ls) 2>&1 | grep real | cut -f2 >> log.txt 我在这里遗漏了什么吗?这里的区别是time是Cygwin中的一个程序,但在QSHELL中它是一个内置的实用程序(比如echo)。我认为您无法重定向内置实用程序的输出 要查看某个东西是内置实用程序还是程
(time ls) 2>&1 | grep real | cut -f2 >> log.txt
我在这里遗漏了什么吗?这里的区别是
time
是Cygwin中的一个程序,但在QSHELL中它是一个内置的实用程序(比如echo
)。我认为您无法重定向内置实用程序的输出
要查看某个东西是内置实用程序还是程序,可以使用type
命令。例如,类型echo
将输出:
echo is a shell built-in.
time is a reserved word.
输入时间时
将输出:
echo is a shell built-in.
time is a reserved word.
您还可以查看/usr/bin的内容<代码>ls/usr/bin/t*:
/usr/bin/tail /usr/bin/test /usr/bin/tr
/usr/bin/tar /usr/bin/tnameserv
/usr/bin/tee /usr/bin/touch
在Cygwin中(或者在我的例子中,在Linux机器上),键入哪个时间
,您将得到
/usr/bin/time
这里的区别是,
time
是Cygwin中的一个程序,但在QSHELL中它是一个内置实用程序(如echo
)。我认为您无法重定向内置实用程序的输出
要查看某个东西是内置实用程序还是程序,可以使用type
命令。例如,类型echo
将输出:
echo is a shell built-in.
time is a reserved word.
输入时间时
将输出:
echo is a shell built-in.
time is a reserved word.
您还可以查看/usr/bin的内容<代码>ls/usr/bin/t*:
/usr/bin/tail /usr/bin/test /usr/bin/tr
/usr/bin/tar /usr/bin/tnameserv
/usr/bin/tee /usr/bin/touch
在Cygwin中(或者在我的例子中,在Linux机器上),键入哪个时间
,您将得到
/usr/bin/time
这似乎是一个与qshell、子shell和/或本机
time
实用程序相关的怪癖
QSH
===> time ls
test_file
real 0m0.054384s
user 0m0.054384s
sys 0m0.000000s
===> (time ls)
test_file
它可以通过以下方式正常工作:
QP2TERM
===> time ls
test_file
real 0m0.10s
user 0m0.01s
sys 0m0.02s
===> (time ls)
test_file
real 0m0.14s
user 0m0.01s
sys 0m0.02s
这似乎是一个与qshell、子shell和/或本机
time
实用程序相关的怪癖
QSH
===> time ls
test_file
real 0m0.054384s
user 0m0.054384s
sys 0m0.000000s
===> (time ls)
test_file
它可以通过以下方式正常工作:
QP2TERM
===> time ls
test_file
real 0m0.10s
user 0m0.01s
sys 0m0.02s
===> (time ls)
test_file
real 0m0.14s
user 0m0.01s
sys 0m0.02s
QSH是一个类似Unix的环境。重定向有一些奇怪之处。IBM有一个名为的文档简要介绍了这一点。如果笨重的话,我发现以下方法可行:
{ time ls *.txt; } > /dev/null 2> time.txt; grep real time.txt | cut -c10-20 >> log.txt; rm time.txt
我无法在不转到文件的情况下重定向STDERR。QSH是一种类似Unix的环境。重定向有一些奇怪之处。IBM有一个名为的文档简要介绍了这一点。如果笨重的话,我发现以下方法可行:
{ time ls *.txt; } > /dev/null 2> time.txt; grep real time.txt | cut -c10-20 >> log.txt; rm time.txt
如果不转到文件,我就无法重定向STDERR。太棒了!它可能很笨重,但一个笨重的解决方案比所有非笨重的非工作“解决方案”都好。太棒了-非常感谢(我花了几个小时在这一行代码上)!!太棒了,巴克!它可能很笨重,但一个笨重的解决方案比所有非笨重的非工作“解决方案”都好。太棒了-非常感谢(我花了几个小时在这一行代码上)!!如果巴克的解决方案对你有效,你应该。如果巴克的解决方案对你有效,你应该。