使用if和控制ksh中的数字

时间:2015-01-20 06:30:00

标签: ksh

我想下载文件格式为cars000.txt,cars003.txt,cars006.txt,直到cars105.txt ...间隔为3,你可以看到

我在ksh中使用以下代码,但在下载cars012.txt之后,它失败了,它开始下载cars13.txt,...而我不希望它。它在代码中失败了什么?

FHR=000
while [ $FHR -le 105 ]
do
file=cars${FHR}.txt

wget http://${dir_target}/${file}
(( FHR = $FHR + 03 ))
echo $FHR

if [[ $FHR -le 10 ]]; then FHR="00"$FHR
else FHR="0"$FHR
fi

done

1 个答案:

答案 0 :(得分:1)

您应该决定:FHR是字符串,小数还是八进制。 你现在正在混合它们。 尝试下一个改进:

FHR=0
while [ ${FHR} -le 105 ]; do
   file=cars${FHR}.txt

   (( FHR = FHR + 3 ))
   echo Without leading zero: FHR=${FHR}

   if [[ $FHR -le 10 ]]; then
      echo "FHR=00${FHR}"
   else
      echo "FHR=0${FHR}"
   fi
   sleep 1
done

(下一个改进可能是使用printf或awk而102/105没有零)