我写了以下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:找不到命令
我找到了一些相关的帖子,但不知道如何解决。谢谢。
答案 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