Shell Scripting:在脚本中生成输出文件名,然后写入它

时间:2010-06-03 19:47:26

标签: shell

我有一个shell脚本,用户将不同的大小作为命令行参数传递。对于每个大小,我想执行一些任务,然后将该任务的输出保存到名称大小的.txt文件中。

  1. 如何通过命令行传递并为输出文件创建字符串名称的一部分?我将输出文件保存在另一个命令行参数指定的目录中。也许一个例子可以清除它。

  2. 在foor lop中,i值表示我需要使用的命令行参数,但是$$我不起作用。

  3.     ./runMe arg1 arg2 outputDir [size1 size2 size3 ...]

    for ((i=4; i<$#; i++ ))
    do
        ping -s $$i google.com >> $outputDir/$$iresults.txt
    done
    

    我需要知道如何构建$ outputDir / $$ iresults.txt字符串。此外,ping -s $$我不起作用。就像我需要两个级别的替换。我需要将$ [$ i]内部$ i替换为循环中的值,例如4为ex,使其为$ 4。然后用第4个命令行参数替换$ 4!

    非常感谢任何帮助。

    谢谢!

2 个答案:

答案 0 :(得分:0)

间接使用!替换前缀:

echo "${!i}"

但是你应该在转移之前的那些之后使用裸机:

shift
shift
for f
do
  echo "$f"
done

答案 1 :(得分:0)

for ARG in $@; do
  $COMMAND  > ${ARG}.txt
done