Bash - wget и mv "команда не найдена" - PullRequest
2 голосов
/ 10 августа 2011

У меня есть базовый скрипт на bash:

SOFT=apt-fast
FILE=$SOFT.sh
PATH=$SRCF/$FILE
WWW=http://www.mattparnell.com/linux/apt-fast/$FILE
EXEC=/usr/bin/apt-fast
wget -v -U firefox $WWW -O $PATH
mv $PATH $EXEC

Визуализированный код (с включенной отладкой) выглядит следующим образом:

SOFT=apt-fast
+ SOFT=apt-fast
FILE=$SOFT.sh
+ FILE=apt-fast.sh
PATH=$SRCF/$FILE
+ PATH=/home/rgr/src/apt-fast.sh
WWW=http://www.mattparnell.com/linux/apt-fast/$FILE
+ WWW=http://www.mattparnell.com/linux/apt-fast/apt-fast.sh
EXEC=/usr/bin/apt-fast
+ EXEC=/usr/bin/apt-fast
wget -v -U firefox $WWW -O $PATH
+ wget -v -U firefox http://www.mattparnell.com/linux/apt-fast/apt-fast.sh -O /home/rgr/src/apt-fast.sh
cleanstart.sh: line 132: **wget: command not found**
mv $PATH $EXEC
+ mv /home/rgr/src/apt-fast.sh /usr/bin/apt-fast
cleanstart.sh: line 133: **mv: command not found**
exit
+ exit

Я перепробовал почти все ... Какую глупую ошибку я здесь совершаю? Сценарий называется так:

sudo bash -vx script.sh # -v для многословия и -x для включения режима отладки на

Спасибо.

Ответы [ 3 ]

7 голосов
/ 10 августа 2011

Это просто:> потому что вы переопределяете переменную "PATH". это, конечно, то, что нужно системе, чтобы найти местоположение самого "wget".

:>

4 голосов
/ 10 августа 2011

Вы удалили свой путь с помощью

PATH=$SRCF/$FILE

, оставив там только одно значение.

Переменная окружения path сообщает оболочке, где она должна искать исполняемые файлы, и вы выпилили ее.

Используйте другое имя переменной для обработки ваших URL для wget.

2 голосов
/ 10 августа 2011

Одна из переменных в вашем скрипте называется PATH.PATH также является именем специальной переменной, используемой для поиска исполняемых файлов.

Использование другого имени переменной должно решить вашу проблему.

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