我正在尝试创建2个文件夹和其中的一些文件。但是它只能创建第一个文件夹和第一个文件。代码说,因为它存在,所以无法创建第一个文件夹。甚至不要尝试创建其余的文件和文件夹。
这是我尝试过的
ExecutorService
总而言之,应该有2个文件夹,分别为rel20和rel21,以及两个文本文件。但是我只得到文件夹rel20和其中的一个文本文件。
如果您能指出为什么这行不通,我将不胜感激。
答案 0 :(得分:2)
您对数组的索引不正确。坦白说,数组没有增加任何价值,因此不值得混淆。只要做:
#!/bin/bash
for i in rel20 rel21; do
( # This open paren is important
mkdir -p $i
cd $i
for j in pt_el pt_mu; do
textFile=text_$i_$j.txt
targetDir=Desktop/samples
cat >${textFile} <<-EOF
"some tex"
EOF
done
) # end subshell to recover previous working directory
done
答案 1 :(得分:2)
我认为从您发布的内容来看,他就是您想要的。
#!/bin/bash
declare -a arrRel=(rel20 rel21)
declare -a arrVar=(pt_el pt_mu)
declare -a arrVarTitle=("electron p_T" "muon p_T")
for i in "${arrRel[@]}"
do
mkdir "$i"
cd "$i"
for j in "${arrVar[@]}"
do
textFile=text_$i_$j.txt
targetDir=Desktop/samples
cat >${textFile} <<EOF
"some tex"
EOF
done #arrVar
cd ../ #cd arrRel
done
不确定您对arrVarTitle的意图是什么。