2017-06-01 88 views
0

我正在寻找答案几个小时,现在我完全卡住了。 我想编写一个脚本,它将自动从seedbox下载文件,将文件名更改为“S0xE0x”格式,然后通过smb和admin共享将其移至正确的文件夹。我使用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)回显一个变量。

感谢所有帮助

回答

0

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

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

增量serienumber(假如那是“seriesnumber” - 在中间有一个“s” ?)

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

现在,你可以做你的举动去引用数组是这样的:

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

谢谢!我不知道为什么我没有首先使用数组。 – Metabaka