Estou tentando criar uma estrutura de pastas para testar um script de backup. As pastas são baseadas em data e terão um horário de modificação da data do nome da pasta.
para fazer isso estou criando uma lista de datas e iterando-as, criando o diretório e definindo a hora de modificação para a data.
#!/bin/bash
dates="2024-01-01 2024-01-02" # + many more.
for d in $dates ; do
mkdir "/mnt/2024/Backups/${d}" 2>/dev/null
t="${d//-/}0000"
touch -a -m -t "${t}" "/mnt/2024/Backups/${d}"
done
se eu executar este script, recebo:
go.sh: 6: Bad substitution
(que no meu script é a linha t="${d//-/}0000"
)
O que é confuso é se eu fizer testes no bash (ubuntu)
$ d=2024-01-01
$ t=${d//-/}
$ echo $t
20240101
ele se comporta conforme o esperado. alguém pode explicar o que está acontecendo ou como consertar?
Reproduzível:
Resolução: execute scripts bash com bash.