Estou tentando escrever um script Bash para automatizar uma tarefa recorrente, ou seja, a criação de uma estrutura de pastas, onde algumas delas devem ser numeradas (para ser mais específico, isso significa arquivar algumas séries de TV que eu foi convertido do DVD em uma estrutura de pastas facilmente compreensível pelo media player Kodi)
Uma primeira tentativa foi assim:
echo "Insert the title of the series"
read title
mkdir $title
mkdir $title/extrafanart
mkdir $title/themes
mkdir $title/videoextras
for num in {1..3}
do
mkdir $title/"Season $num"
done
Isso cria corretamente a seguinte estrutura, no exemplo
Star Trek
Star Trek\extrafanart
Star Trek\Season 1
Star Trek\Season 2
Star Trek\Season 3
Star Trek\themes
Star Trek\videoextras
que é precisamente o que eu precisava. Mas, como você provavelmente pode ver, há uma grande desvantagem nesse script: o número total de pastas de temporada é fixo e não é escolhido dinamicamente toda vez que o script é executado. Então eu tentei modificá-lo da seguinte forma
echo "Insert the title of the series"
read title
echo "Insert the number of seasons"
read seasons
mkdir $title
mkdir $title/extrafanart
mkdir $title/themes
mkdir $title/videoextras
for num in {1..$seasons}
do
mkdir $title/"Season $num"
done
Desta vez, o resultado não é exatamente o que eu esperava, é isso que recebo
Star Trek
Star Trek\extrafanart
Star Trek\Season {1..3}
Star Trek\themes
Star Trek\videoextras
que NÃO é o que eu preciso.
Eu acho que o problema está na primeira linha do for
loop, onde a expansão da chave é lida pelo shell como uma string e não como uma expressão a ser avaliada. Estou certo?
O que está errado e como posso corrigir esse script?