我正在尝试执行一个包含变量的wget命令,但它只是忽略它,有任何想法我做错了什么吗?
#!/bin/bash
URL=http:://www.myurl.com
echo $(date) 'Running wget...'
wget -O - -q "$URL/something/something2"
四件事情:
这样做可行:
#!/bin/bash
URL="http://www.google.com"
echo $(date) 'Running wget...'
wget "${URL}"
我在IPython(colab)中使用了这段代码:
URL = 'http:://www.myurl.com'
!wget {URL}
)
Bash(或其他shell)中的另一个方便选项是创建一个简单的帮助函数,该函数调用wget
并使用几乎所有站点和通常使用的任何特定选项所需的常见选项。这减少了输入的数量,并且在脚本中也很有用。我将以下内容放在我的~/.bashrc中,以使其对所有shell /子shell可用。它验证输入,检查wget
是否可用,然后将所有命令行参数传递给wget
,并在脚本中设置默认选项:
wgnc () {
if [ -z $1 ]; then
printf " usage: wg <filename>\t\t(runs wget --no-check-certificate --progress=bar)\n"
elif ! type wget &>/dev/null; then
printf " error: 'wget' not found on system\n"
else
printf " wget --no-check-certificate --progress=bar %s\n" "$@"
wget --no-check-certificate --progress=bar "$@"
fi
}
你可以通过进一步为函数设置别名来进一步减少输入。我使用:
alias wg='wgnc'
这将常规的 wget --no-check-certificate --progress=bar URL
简化为 wg URL
。显然,您可以根据需要设置选项,但这是在脚本中使用 wget
的另一种方式。
Resolving http (http)... failed: Name or service not known.
wget: unable to resolve host address http
,它将真正的http://地址添加了ftp://前缀... - BroshiURL=http:://www.myurl.com
中的两个冒号是打错了吗?此外,您应该将URL=
设置为URL="http://www.myurl.com"
。同时,在您的脚本中使用 ShellCheck。 - user3439894