Базовый сценарий Bash приводит к тому, что «edge.sh: строка 13: npm: команда не найдена» обнаружила проблему здесь, но она не решилась - PullRequest
1 голос
/ 29 октября 2019

Следующий простой скрипт явно не так прост. Весь скрипт работает нормально, пока я не получу команду npm. Я просмотрел многочисленные темы, но ни одно из решений не устранило проблему.

Каждый из сценариев запускается родительским сценарием. Вот родитель:

#!/bin/bash/

authGogglesPath='/c/sandBox/amazon-sandbox/CraigMonroe/platform.shared.auth-goggles'

echo $'\nExecuting node commands for local running solution...\n'
#echo $(pwd)

# run the scripts
bash edge.sh ${edgePath} &

exec bash
  • Я проверил свой путь в терминале, и он знает
  • Я подумал, что он может работать как другой связанный профиль, поэтому я попробовал полный путьдо нпм, но результаты те же.
#!/bin/bash/

authGogglesPath='/c/sandBox/amazon-sandbox/CraigMonroe/platform.shared.auth-goggles'

echo $'\nExecuting node commands for local running solution...\n'
#echo $(pwd)

# run the scripts
bash edge.sh ${edgePath} &

exec bash

Это вызывает edge.sh со строковым путем для arg (подробнее позже)

edge.sh - это еще один простой скрипт

#!/bin/bash/

PATH=$1
#echo $PATH

if [ -z "${PATH}" ] ; then
    "PATH is empty! Aborting"
    exit 1
fi
cd "${PATH}"

echo $'\nExecuting Edge...\n'
npm run dev

Каждый раз, когда я запускаю это, я получаю:

$ bash edge.sh /c/sandBox/amazon-sandbox/CraigMonroe/platform.shared.auth-goggles/

Executing Edge...

edge.sh: line 13: npm: command not found

cmonroe@LP10-G6QD2X2 MINGW64 ~/cruxScripts
$

Когда в терминале и при ручном переходе в каталог и при запуске команды он работает правильно. Где начинается и начинается край.

1 Ответ

1 голос
/ 29 октября 2019

Если npm не находится в /c/sandBox/amazon-sandbox/CraigMonroe/platform.shared.auth-goggles/, выполнение PATH=$1 означает, что ваш PATH относится только к этой одной папке.
Не более /usr/bin или любым другим папкам, которые могут понадобиться вашему сеансу bash.

Как прокомментировано, добавление к PATH должно работать

PATH="$1:${PATH}"
...