首页 > 解决方案 > 第二个循环没有分配正确的 END

问题描述

我有一个将创建 3 个文件的脚本。

关键字1script.sh

关键字2script.sh

关键字3script.sh

在每个文件中,我想看到以下内容

cat keyword1script.sh
filekeyword11
filekeyword12
filekeyword13
filekeyword14

cat keyword2script.sh
filekeyword11
filekeyword12
filekeyword13
filekeyword14
filekeyword15
filekeyword16

cat keyword3script.sh
filekeyword11
filekeyword12

我得到了什么:

cat keyword1script.sh
filekeyword11
filekeyword12
filekeyword13
filekeyword14

cat keyword2script.sh
filekeyword11
filekeyword12
filekeyword13
filekeyword14

cat keyword3script.sh
filekeyword11
filekeyword12
filekeyword13
filekeyword14

我尝试过更改代码的某些部分和不同类型的循环,但是都产生相同的结果。

#!/bin/bash

findwords=( keyword1 keyword2 keyword3 )
files=( 4 7 2 )

for t in "${findwords[@]}"
do
END=( "${files[@]}" )
  for i in $(seq 1 $END)
  do
  echo "" >> ${t}script.sh
  echo "file${t}$i" >> ${t}script.sh
  done
done

第一个循环似乎工作正常,创建了文件keyword1script.sh、keyword1script.sh 和keyword1script.sh,但是每个文件包含相同数量的行。

END一旦第一个循环完成到数组文件中的第二个数字,该变量应该更改。

标签: bash

解决方案


推荐阅读