2012-02-13 3 views
1

У меня есть файл сценария терминал оболочки start.command, что я запускаю из искателем с:Возможно ли выполнить команду относительно сценария оболочки терминала?

ls -l 

Файл находится в ~/foo, но список ~, я могу получить путь он содержащий реж. Я хотел бы запустить приложение, которое находится в той же папке, что и файл, когда пользователь запускает .command, но мне кажется, что мне нужен абсолютный путь к файлу для этого.

ответ

4

Предполагая, что перед запуском ls необходимо установить cd в прилагаемый каталог сценария.

Вы можете однострочный его с этим:

cd "$(dirname "$0")" 

$0 является относительный путь к сценарию, то есть все, что вы использовали в командной строке, чтобы вызвать его. dirname разделяет имя файла с пути.

$() - это расширение ценности для подачи до cd, и кавычки необходимы для обработки таких вещей, как пробелы в дорожках.

+0

Удивительный! Спасибо за этот намек! – jsherk

Смежные вопросы