Почему в команде bash в команде указан путь к пути к файлу? - PullRequest
0 голосов
/ 04 июня 2019

Сценарий

Я написал следующий сценарий bash с именем wslLauncher.sh, который содержит:

#!/bin/bash
wsl java -jar "/mnt/e/someProjectFolder/JavaServerSort.jar"

Когда я запускаю эту точную команду, например, из cmd, она выполняет .jarфайл.Если я запускаю команду без wsl перед ней, в wsl ubuntu 16.04 она также выполняет файл .jar.Однако, когда я выполняю сценарий wslLauncher.sh, например, из команды, набрав в расположении E:/: wslLauncher.sh, bash возвращает:

Ошибка: невозможно получить доступ к jarfile C: / Program Files/Git/mnt/e/someProjectFolder/JavaServerSort.jar

Вопрос

Почему wslLauncher.sh предшествует C:/Program Files/Git/ пути к файлу JavaServerSort.jar, как указанов команде в wslLauncher.sh?

Попытка 0

Моим первым предположением было, что рабочий каталог программы bash в это время C:/Program Files/Git/ и что java -jarуказывает, что следующий аргумент содержит путь, и что bash автоматически всегда предполагает, что путь относительно рабочего каталога, и, следовательно, ищет файл в C:/Program Files/Git/mnt/e/.. вместо /mnt/e/....

Чтобы проверить мою гипотезуЯ изменил wslLauncher.sh для печати «рабочего каталога», как указано здесь https://www.cyberciti.biz/faq/pwd-linux-unix-command-examples/,, что дает:

#!/bin/bash
echo $PWD
wsl java -jar "/mnt/e/someProjectFolder/JavaServerSort.jar"

Однако это возвращает путь, в котором находится wslLauncher.sh (в стиле linux без/mnt/:

/ e /

Поэтому гипотеза отвергается;bash не добавляет свой рабочий каталог к ​​пути, указанному в команде.

Попытка 1

Возможно, к команде добавлен путь к среде.Чтобы проверить, может ли это быть так, я изменил файл wslLauncher.sh на:

#!/bin/bash
printenv
wsl java -jar "/mnt/e/someProjectFolder/JavaServerSort.jar"

, который возвращал список путей, но путь git.. не был включен, поэтому вторая гипотезаотвергнуто;bash не добавил среду.

Попытка 2

Возможно, командная строка передает свой рабочий каталог в wslLauncher.sh.Рабочий каталог не C:/Program Files/Git/, поэтому эта гипотеза отклонена.

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