使用shell脚本for循环变量打印到多个文件

时间:2016-05-13 15:57:52

标签: bash for-loop

没有文件显示出来,我尝试将要写入的文件放在引号中但是没有文件正在写入我得到的是一个名为person.txt的文件

   #!/bin/sh
    cut -f 1 $1 > temp1.txt
    cut -f 2-3 $2 > temp2.txt
    for ((i=3;i<103;i++)); do
            cut -f $i $1 > temp3.txt
            paste temp1.txt temp2.txt temp3.txt > $HOME/Desktop/Plots/person$iPlot.txt
    done

1 个答案:

答案 0 :(得分:0)

未经测试,脚本中存在问题

 $HOME/Desktop/Plots/person$iPlot.txt

Bash不会像您期望的那样替换变量i,而是尝试解析变量iPlot。由于此变量尚未分配任何值,因此您最终会得到person.txt。这发生在bash尝试解析变量时整个单词分开,例如按空间或时期。

要确保使用变量i,请尝试

$HOME/Desktop/Plots/person${i}Plot.txt

代替。