Почему мой bash-скрипт не работает должным образом? - PullRequest
0 голосов
/ 15 октября 2019

Я написал следующий скрипт 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"/>. 

Я получу только одну строку вместо списка строк.

Не могли бы вы помочь мне заставить код работать правильно? Кроме того, я хотел бы знать, почему скрипт не является правильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...