Переменные установки ошибок утконоса

У меня есть сценарий оболочки, который работает без ошибок при запуске из терминала

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... и т. д.

Сценарий исправлен, и работает!

Другие вопросы по тегам