变量,它按循环数字调用先前定义的变量

时间:2017-06-01 23:42:22

标签: bash

我正在寻找几个小时的答案,现在我完全卡住了。 我想编写一个脚本,它将自动从seedbox下载文件,将文件名更改为“S0xE0x”格式,然后通过smb和admin共享将其移动到正确的文件夹。我正在使用VM与Debian和Windows 10作为主要操作系统。

让我们说,我正在看10系列。

以下是每个变量(此部分将来可编辑)

N1="Alice to Zouroku"
D1="Alice to Zouroku"
S1="01"

哪里

  • N1是该系列的名称
  • D1是文件夹名称
  • S1是本赛季的数字

我将跳过从文件名中提取剧集数字的部分,因为这工作正常。

在所有变量之后,我有另一个变量,表示系列的数量(循环的极限)

amount=12

serienumber=1

在循环中增加1

所以,这是我的循环

for ((  i = 0 ;  i <= $amount;  i++  ))do
    - name change part with $epname -
    - here is a part which is nor working -
    $serienumber++
done

所以,我想做什么。我想使用由$ serienumber调用的已定义变量。 例如:

mv $epname /mnt/anime/[variable D1 -> D$serienumber]/[variable S1 ->S$serienumber]E$epnum.mkv

我该怎么做?如何用当前循环编号($ serienumber)回显变量。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

在这里使用数组可能会更好:

N[0]="Alice to Zouroku"
D[0]="Alice to Zouroku"
S[1]="01"

增量serienumber(应该是&#34;系列号&#34; - &#34; s&#34;在中间?)

for ((  i = 0 ;  i <= $amount;  i++  ))do
    (( serienumber++ ))
    echo $serienumber
done

现在,您可以按照以下方式取消引用数组:

mv $epname /mnt/anime/D${D[serienumber]}]/S${S[serienumber]}E${epnum}.mkv