Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Mãos à obra: Passando parâmetros para o script

O resultado foi a criação do arquivo amazon_aws.png, como esperado.

#!/bin/bash
CAMINHO_IMAGENS=~/Downloads/imagens-livros
convert $CAMINHO_IMAGENS/$1.jpg $CAMINHO_IMAGENS/$1.png
convert $CAMINHO_IMAGENS/$2.jpg $CAMINHO_IMAGENS/$2.png
3 respostas

Olá, Henrique!

Você conseguiu criar o arquivo 'amazon_aws.png' corretamente, o que indica que seu script está funcionando bem para a conversão de uma única imagem. Isso é top, parabéns :)

Uma sugestão, no seu script atual só está convertendo duas imagens específicas, cujos nomes são passados como parâmetros ($1 e $2). Se você quiser torná-lo mais genérico para converter todas as imagens .jpg em um diretório para .png, você pode usar um loop for para iterar sobre todos os arquivos .jpg no diretório especificado.

Aqui está um exemplo de como você pode fazer isso:

#!/bin/bash
CAMINHO_IMAGENS=~/Downloads/imagens-livros
for imagem in $CAMINHO_IMAGENS/*.jpg
do
    imagem_sem_extensao=$(basename $imagem .jpg)
    convert $CAMINHO_IMAGENS/$imagem_sem_extensao.jpg $CAMINHO_IMAGENS/$imagem_sem_extensao.png
done

Neste script, a linha 'for imagem in $CAMINHO_IMAGENS/*.jpg' obtém todos os arquivos .jpg no diretório especificado. Em seguida, para cada um desses arquivos, ele remove a extensão .jpg usando o comando 'basename' e, em seguida, converte o arquivo .jpg em .png.

Espero ter ajudado e bons estudos!

Entendi o seu código quase completamente, poderia explicar melhor o que o basename faz?

solução!

Opa , posso explicar sim.

Nesse código em shell script, o comando basename é utilizado para extrair o nome do arquivo (sem o caminho do diretório) e, opcionalmente, remover a extensão do arquivo.

Vamos analisar a linha específica:

imagem_sem_extensao=$(basename $imagem .jpg)

Aqui, $imagem contém o caminho completo de um arquivo de imagem no formato JPG dentro do diretório especificado por CAMINHO_IMAGENS. O comando basename é utilizado para extrair apenas o nome do arquivo da variável $imagem. O .jpg fornecido como segundo argumento para o basename indica que a extensão ".jpg" deve ser removida do nome do arquivo.

Portanto, após essa linha ser executada, a variável $imagem_sem_extensao conterá apenas o nome do arquivo, sem o caminho do diretório e sem a extensão ".jpg". Esse nome de arquivo é então utilizado nas linhas seguintes para realizar operações de conversão com o comando convert.