Команда wget не найдена при установке внутри скрипта bash - PullRequest
1 голос
/ 05 апреля 2019

Я написал следующий скрипт bash:

 #!/bin/sh

echo "Number of command line arguments : $#"
if [ $# == 0 ]; then
   echo "Your command line contains no arguments"
   declare -a arr=("xx.xx.xx.xx" "yy.yy.yy.yy")
else
   declare -a arr=($1)
fi


for i in "${arr[@]}"
do
   URL="https://"$i":8443"
   echo "URL is $URL"
   wget --no-check-certificate $URL/heapdump
done

В строке 16 происходит сбой: wget: команда не найдена

Я нашел несколько похожих постов, но не смог понять, какпочини это.Спасибо.

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Для получения пути к исполняемым файлам, таким как wget, используйте 'which' cmd:

which wget

Вывод:

/full/path/wget
1 голос
/ 05 апреля 2019

Если вы введете команду (которая не является внутренней командой или функцией оболочки), bash ищет в каталогах, упомянутых в переменной PATH, файл с таким именем (wget в вашем случае), который имеетисполняемый бит, установленный для пользователя, выполняющего скрипт.В вашем случае подходящий wget не найден.

Поскольку маловероятно, что у вас есть wget в вашей переменной PATH без x-битного набора, наиболее вероятной причиной является отсутствие переменной PATH.каталог, в котором находится ваш wget.

У вас есть два варианта: расширить PATH или явно указать префикс строки wget в вашем скрипте, указав правильный путь, например

/here/is/my/wget --no-check-certificate $URL/heapdump
...