第一个目录没有使用for循环创建

时间:2016-04-04 12:36:03

标签: shell

我是shell脚本新手。尝试创建目录并将其移动到for循环本身的其他目录中。但是第一个目录,即01没有被创建。

year=20017
month=(01 02 03 04 05 06 07 08 09 10 11 12)
for month in ${month[@]}
do
echo $month
echo "Data importing for $year $month"
echo "Data imported for $year $month"
mkdir "$month"
mv "$month" "$year"
done here

enter image description here

1 个答案:

答案 0 :(得分:0)

Bash数组索引从0开始,而不是1 所以:

year=20017
month=(0 1 2 3 4 5 6 7 8 9 10 11)
for month in ${month[@]}
do
  echo $month
  echo "Data importing for $year $month"
  echo "Data imported for $year $month"
  mkdir "$month"
  mv "$month" "$year"
done here

<强>更新
你是对的:

year=2017
months=(jan feb mar apr may jun jul aug sep oct nov dec)
for m in ${months[@]}
do
  echo $m
done

这是因为索引是字符串,所以$months在内部处理为对象,而不是数组。

相关问题