Переменные установки ошибок утконоса
У меня есть сценарий оболочки, который работает без ошибок при запуске из терминала
sh script.sh [name_of_the_pdf_.pdf]
Скрипт читает имя файла данного.pdf и устанавливает некоторые переменные из первых символов имени файла:
Например, следующая переменная читает первые два символа из имени файла и сохраняет их как переменную:
VAR_ENDPAGE=${1:0:2}
Затем скрипт запускает Java-программу из командной строки, передавая аргументы из этих хранимых переменных:
java -jar jpdftweak.jar -i7-"${VAR_ENDPAGE[@]}" $1 -output ~/OUTPUTFILE.pdf
Если предположить, [name_of_the_pdf.pdf]=2350.pdf
результирующая команда будет:
java -jar jpdftweak.jar -i7-23 $1 -output ~/OUTPUTFILE.pdf
Проблема в том, когда я использую этот скрипт в Утконосе. Я создал Droplet, и когда я удаляю файл "2350.pdf", программа запускает сценарий, используя этот файл как $1
аргумент. Кажется, все в порядке, но, похоже, невозможно правильно создать переменные. Например, приведенная выше переменная возвращает: /U
Итак, команда:
java -jar jpdftweak.jar -i7-U/ $1 -output ~/OUTPUTFILE.pdf
Сценарий точно такой же. Так что ошибка в процессе установки переменной. Я пытался использовать backticks, но все, кажется, работает...
Где это U/
родом из?
1 ответ
Ну, друг дал мне совет... и решил его.
Проблема заключалась в том, что в Терминале файл имел только имя и расширение, но при запуске дроплета файл будет содержать также путь, расположенный в /Users/etc… Сценарий загрузит первые два символа из имени файла, но в дроплете имя файла начинается с пути, так что это дает мне "/U" ошибку "/U"sers... и т. д.
Сценарий исправлен, и работает!