как правильно вызвать команду unix из других директорий - PullRequest
1 голос
/ 16 декабря 2010

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

Короче:

cd /var/www/config
./deploy.sh - works!

но

./var/www/config/deploy.sh

notnt: (

deploy.sh вызывает другой скрипт bash, и кажется, что вызываемый скрипт не может найти нужные ему библиотеки, потому что он ищетотносительно того, где он был вызван, из которого в этом случае будет / вместо / var / www, как и ожидалось.

Я пытаюсь вызвать это из скрипта capistrano, поэтому нужно найти способ вызвать егобез необходимости сначала cd. Кто-нибудь знает простой способ добиться этого?

РЕДАКТИРОВАТЬ: Спасибо за ваши быстрые предложения, он все еще воспроизводится. deploy.sh вызывает другой файл bash с именем sake. Я загрузил копиюздесь http://tinypaste.com/25fc8

Ура, ребята!

Ответы [ 3 ]

1 голос
/ 16 декабря 2010

Не ставьте . (точку) перед вашей командой.Просто используйте:

$ /var/www/config/deploy.sh
0 голосов
/ 16 декабря 2010

Если вы хотите остаться там, где вы находитесь после выполнения команды:

(cd /var/www/config; ./deploy.sh)
0 голосов
/ 16 декабря 2010

Вы можете также обернуть его, чтобы вы могли вернуться к существующему каталогу, иногда проги предпочитают подобрать PWD для работы, поэтому может стоить установить его явно:

( cd /var/www/config/ && ./deploy.sh )

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