Eu não conhecia o comando awk
para dividir um texto com base em um delimitador. Gostei bastante de ter aprendido mais esta ferramenta. Por curiosidade, vi que o comando basename
nos permite obter o nome de um arquivo sem sua extensão, bastando que passemos a opção -s
seguida da extensão que desejamos remover, tal como no exemplo abaixo:
basename -s .jpg ~/CursoShellScripting/LojaVirtual/CapasLivros/algoritmos.jpg
Com isso, pude atualizar meu script, deixando-o mais simples:
#!/bin/bash
# Navega para o diretório especificado
cd ~/CursoShellScripting/LojaVirtual/CapasLivros
# Percorre os arquivos com extensão .JPG do diretório atual
for arq in *.jpg
do
# Extrai o nome do arquivo sem a extensão
nome_arq=$(basename -s .jpg $arq)
# Realiza a conversão de JPG para PNG
convert $nome_arq.jpg $nome_arq.png
done