Shell关键字如何重定向输出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jerry_1126/article/details/83757863

以time为示例来说明Shell关键字如何重定向输出。经常碰到这样一种场景,需要使用time来测试一条命令执行多少时间,并将其结果重定向到某个日志文件中。 time的输出信息是打印在标准错误输出上的。time的输出信息重定向到文件里面,因为time是shell的关键字,shell做了特殊处理,它会把time命令后面的命令行作为一个整体来进行处理,在重定向时,time命令本身的输出并不会被重定向的。可以使用子shell或者{}来处理关键字的重定向输出问题。

  • 利用子shell来重定向输出

[root@localhost ~]# (time ls) > log.txt 2>&1 
file1
file2
file3
......
real 0m0.004s
user 0m0.001s
sys  0m0.004s
  • 利用{}来重定向输出

[root@localhost ~]# { time ls; }> log.txt 2>&1 
file1
file2
file3
......
real 0m0.004s
user 0m0.001s
sys  0m0.004s

猜你喜欢

转载自blog.csdn.net/Jerry_1126/article/details/83757863