【问题标题】:Time output redirection时间输出重定向
【发布时间】:2014-12-11 23:42:51
【问题描述】:

我制作了一个脚本来压缩 zip 和 tar 中的 3 个文件并测量时间以进行比较,但是当我尝试将时间输出重定向到文件时,存储在其中的输出是 tar 和 zip 文件,有人可以帮我吗?

#!/bin/bash
if [ "$#" != 3 ]
  then
  echo "usage $0 file1 file2 file3"
  exit
fi

echo "Start\n"
echo "First zip:"  > time.txt
time >> time.txt zip -r $1.zip $1
echo "first zip done"
echo "first tar:" >> time.txt
time >> time.txt tar czf $1.tar.gz $1
echo "first tar done"
echo "second zip:" >> time.txt
time >> time.txt zip -r $2.zip $2
echo "Second zip done"
echo "second tar:" >> time.txt
time >> time.txt tar cfz $2.tar.gz $2
echo "Second tar done"
echo "third zip:" >> time.txt
time >> time.txt zip -r $3.zip $3
echo "third zip done"
echo "third tar:" >> time.txt
time >> time.txt tar cfz $3.tar.gz $3
echo "third tar done"
rm *.zip *.tar.gz
exit

谢谢

【问题讨论】:

    标签: bash redirect time zip tar


    【解决方案1】:

    试试这个:

    首先创建一个空白 time.txt 文件(在您的 shell 脚本顶部)

    >time.txt
    

    然后,对于每个 zip 命令,执行以下操作(注意:';' 在 '}' 之前很重要:

    { time zip -r $1.zip $1 > /dev/null 2>&1; } 2>>time.txt
    

    【讨论】:

    • 谢谢,它起作用了,但只有当我删除标准错误到标准输出重定向时,在此之前 time.txt 文件只包含回声
    猜你喜欢
    • 2011-01-25
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 2014-03-28
    • 1970-01-01
    相关资源
    最近更新 更多