Як запускати сценарії оболонки, починаючи з ./ на Ubuntu і Mac без будь-яких змін?


0

Оригінальний код, призначений для Ubuntu:

./rebar get-deps
./rebar compile

Коли я спробую:

sh start.sh
start.sh: line 5: ./rebar: No such file or directory

Виправлення просто, просто видаліть ./

Але як зробити так, щоб скрипт працював одночасно Ubuntu і Мак не змушуючи користувача вносити будь-які зміни?


РЕДАГУВАТИ / ОНОВЛЕННЯ: rebar є Erlang інструмент, встановлений через brew install rebar

Ось оригінал start.sh файл: https://github.com/aeternity/testnet/blob/master/start.sh

Я думаю, що це різниця між Mac і Ubuntu - сценарій нібито працює на Ubuntu (не вдалося спробувати) - у той час як на Mac мені довелося видалити ./ (Мені потрібно перевірити Ubuntu)


1
Я думаю, вам потрібно дати нам трохи більше інформації. Є rebar скрипт, який знаходиться в тому ж каталозі, що і start.sh? Або є rebar наявна програма у вашому $PATH? Це частина "оригінального коду" start.sh скрипт? Якими є дозволи відповідних файлів? (Чи можете ви опублікувати мінімальну версію start.sh сценарій?) Те, що ви описуєте, здається, не є проблемою, викликаною різницею між macOS і Linux.
slhck

Відповіді:


0

./rebar тільки адресує файл у поточному робочому каталозі. Початок rebar змушує шукати в каталогах у вашому PATH навколишнє середовище.

Якщо це єдині два варіанти, ви можете додати до сценарію:

REBAR="rebar"
[ -x ./rebar ] && REBAR="./rebar"   # check if rebar is in pwd

$REBAR get-deps
$REBAR compile 
...
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.