【问题标题】:output a loop to a log file for separate file for each value为每个值输出一个循环到一个日志文件的单独文件
【发布时间】:2015-01-07 18:41:40
【问题描述】:

假设我有一个这样的脚本:

num1 = 3
for i in $num1
  do
  echo "test $num1"
  echo "abcd"
  echo "foo"
done

我想将 num1 中每个值的回显输出到日志文件中,该怎么做呢?因此,当它运行时,它应该创建 log1.log、log2.log 和 log3.log。

【问题讨论】:

    标签: unix ksh


    【解决方案1】:

    echo 的输出重定向添加到文件:

    num1 = 3
    for i in $num1
      do
      echo "test $num1" > log$i.log
    done
    

    这将生成一个名为log3 的文件,其内容为test 3

    也许您想使用花括号 (ksh) 来获取序列 1 2 3,并且每个文件都有基于 i 的不同内容:

    num1=3
    for i in {1..$num1}
    do
      echo "$i" > log$i.log
    done
    

    这将产生3个文件名log1.loglog2.loglog3.log,内容分别为123

    【讨论】:

    • 太棒了!所以我遗漏了一件事,如果我在 if 中有多个回声怎么办?如果我以同样的方式做,那么他们会去那个文件吗?
    • @user2061886 您可以使用>> 而不是> 追加到文件
    • 好的,所以第一个回声是>,然后后面的回声是>>?
    猜你喜欢
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多