A variável PATH
tem um significado predefinido: é o caminho de pesquisa dos programas . Quando você digita um nome de comando, o shell (ou qualquer outro programa que você diga para executar este comando) procura por um arquivo executável em um dos diretórios mencionados na variável PATH
. Em seu script, cp
é pesquisado em um subdiretório chamado newimg.png
do diretório atual (que nem sequer existe, e muito menos contém um arquivo executável chamado cp
.
Use um nome de variável diferente no seu script. Por convenção, as variáveis de ambiente que têm um significado para os programas geralmente estão em maiúsculas. Para variáveis que são locais para um script, você pode usar letras minúsculas para evitar conflitos (nomes de variáveis não fazem distinção entre maiúsculas e minúsculas). Melhor, use um nome mais significativo (porque ter variáveis que diferem apenas no caso é confuso para os humanos).
#!/bin/bash
echo "Script executed from: ${PWD}"
#copy image and resize it
output_image_name="newimg.png"
output_image_path="${PWD}/${OUTPUT_IMG}"
cp "" "$output_image_name"
mogrify -resize 400x300 "$output_image_path"
Não há razão para usar o nome do arquivo e às vezes o caminho completo aqui. Além disso, em vez de copiar o arquivo, modificando-o com mogrify
, você também pode usar convert
diretamente - convert
é o mesmo que mogrify
, exceto que ele grava em um arquivo de saída diferente.
#!/bin/bash
output_image="newimg.png"
convert -resize 400x300 "" "$output_image"