GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Script básico em Bash com Convert e laço For

linux
programação
Tags: #<Tag:0x00007f4a2b57cae8> #<Tag:0x00007f4a2b57c818>

#1

Oi! Esse é meu primeiro post depois de muito tempo longe do GUJ.

A ideia desse script é criar imagens redimensionadas com o comando convert, que vai jogar as imagens convertidas em uma pasta, com o mesmo nome que elas tinham antes. A ideia que eu tive é usar o *.jpg pra converter todas as imagens terminadas com esse formato de arquivo, e como podem ver, a variável utilizada é uma lista, que eu usei pra automatizar o processo.

abaixo o código:

======
#!/bin/bash

l1=(‘001.jpg’‘002-crop.jpg’‘01_051.jpg’‘01_057.jpg’‘01_049.jpg’‘01_050.jpg’‘01_056.jpg’)

for l1 in *.jpg; do convert $l1 -resize 1080x1920! teste/$l1; done

======
E o terminal retorna o seguinte erro de sintaxe:

File “./convert.sh”, line 6
for l1 in *.jpg;
^
SyntaxError: invalid syntax

===
…Onde a seta aponta para *.jpg sendo o problema. O mais estranho é que eu já usava esse script antes, e funcionava normal. Não sei se algo mudou no convert, mas como estou pesquisando sobre isso faz tempo e não tenho encontrado soluções, decidi compartilhar isso pra ver se alguém sabe o que está acontecendo.

PS: O script está na mesma pasta onde estão todos os arquivos citados na lista l1.

Obrigado desde já,

AsariSch.


#2

Bom dia colega, sou MUITO amador, mas vou no palpite que o for devia ser “for i in I1;” ou seja, “pra cada item na lista I1 faça:”. Hj não usarei o PC, senão testaria pra nós, kk . Espero ter ajudado, ou então, me desculpa aí.