Я написал следующий скрипт bash для изменения размера изображения (icon.png) с помощью файла config.xml, который содержит необходимые размеры изображений и ссылки для сохранения файлов с измененным размером.
#!/usr/bin/env bash
function help {
echo "For running the program, please write"
echo "1) config.xml file's location containing image sizes and links for saving resized images;"
echo "2) a name of an image to be resized."
}
function resize {
array=()
while read -r line
do
case $line in *icon*) array+=("$line");; esac
done < $1
for ((a=0; a < ${#array[*]}; a++))
do
echo "$a: ${array[$a]}"
imagesize=$(echo "$a: ${array[$a]}" | grep "<icon"| grep -E -o "height=\"(\d+)" | grep -E -o "\d+")
imagelink=$(echo "$a: ${array[$a]}" | grep "<icon"| grep -E -o "[^\"\'=[:space:]]+\.(jpe?g|png|gif)")
echo $2 -resize $imagesizex$imagesize! ../../$imagelink
done
echo "Resizement has been executed"
}
if [ ! -f "$1" ] || [ ! -f "$2" ]
then
help
else
resize
fi
Я получаю следующую ошибку: "строка 9: $ 1: неоднозначное перенаправление"
Если я проверю массив, я получу следующий вывод:
<icon height="36" width="36" density="ldpi" src="res/icon/android/ldpi.png"/>.
Я получу только одну строку вместо списка строк.
Не могли бы вы помочь мне заставить код работать правильно? Кроме того, я хотел бы знать, почему скрипт не является правильным.