放入bash脚本时找不到wget命令

时间:2019-04-05 04:46:13

标签: bash path wget

我写了以下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 个答案:

答案 0 :(得分:1)

如果键入命令(不是内部命令或Shell函数),则bash会在变量PATH中提到的目录中搜索具有此名称的文件(在您的情况下为wget ),并为运行脚本的用户设置了可执行位。您的情况下,找不到合适的wget

由于不太可能没有设置x位,因此PATH中没有wget,最可能的原因是PATH缺少wget所在的目录。

您有两个选择:扩展PATH,或在脚本中的wget行前加上正确的路径,即

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

答案 1 :(得分:1)

要获取可执行文件(如wget)的路径,请使用“ which” cmd:

which wget

输出:

/full/path/wget