Пробелы в пути к файлу нарушают сценарий оболочки даже с кавычками - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь написать скрипт для запуска моего .jar-файла с указанным JRE. Казалось, что относительные пути не работают, поэтому я решил, что «относительный» означает относительный относительно чего-то другого, кроме самого скрипта, и мне нужно было использовать $ BASH_SOURCE. Как бы то ни было, он хорошо воспроизводит эхо, но когда приходит время запустить команду для запуска .jar, я получаю ошибку «Нет такого файла или каталога», и в первом месте отображается усеченный каталог.

Я понимаю, что этот вопрос задавался миллион раз, но все, на что я смотрел, так просто, просто добавив несколько двойных кавычек. Я сделал это Я провел последний час, добавляя каждую возможную нелепую комбинацию двойных кавычек, о которой я только мог думать, и это ничего не сделало. В лучшем случае я получаю ту же проблему, а в худшем случае она заменяет всю строку на «??». В приведенном ниже примере я использовал кавычки при определении переменных, но я также попытался поместить кавычки в последнюю строку. Это все еще не работает.

#!/bin/bash
dir=${BASH_SOURCE%/*}
pathjar=“${dir}/thebox.jar”
echo $pathjar
pathjre=“${dir}/jre/Contents/Home/bin/java”
Echo $pathjre
$pathjre -jar $pathjar

Я также пытался заменить $ pathjar случайной строкой символов, чтобы выяснить причину ошибки. Поскольку ошибка не изменяется, я полагаю, что она должна быть с переменной $ pathjre или, возможно, с обоими.

1 Ответ

0 голосов
/ 30 марта 2019

Редактор, который я использовал, менял мои двойные кавычки на причудливые двойные кавычки. Работает нормально с обычными двойными кавычками. Ну, я думаю, это полезно, если кто-то случайно наткнулся на этот вопрос и совершил ту же ошибку ...

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