检查是否存在wget / curl

时间:2013-01-19 04:31:09

标签: linux shell

尝试使用wget下载文件的脚本,或者如果Linux中不存在wget则使用curl。如何让脚本检查是否存在wget?

6 个答案:

答案 0 :(得分:9)

Linux有一个which命令,用于检查路径中是否存在可执行文件:

pax> which ls ; echo $?
/bin/ls
0

pax> which no_such_executable ; echo $?
1

如您所见,它设置了返回代码$?,以便轻松判断是否找到了可执行文件。

答案 1 :(得分:3)

wget http://download/url/file 2>/dev/null || curl -O  http://download/url/file

答案 2 :(得分:3)

还可以使用commandtypehash来检查是否存在wget / curl。这里的另一个线程 - “Check if a program exists from a Bash script”很好地回答了在bash脚本中使用什么来检查程序是否存在。

我会这样做 -

if [ ! -x /usr/bin/wget ] ; then
    # some extra check if wget is not installed at the usual place                                                                           
    command -v wget >/dev/null 2>&1 || { echo >&2 "Please install wget or set it in your path. Aborting."; exit 1; }
fi

答案 3 :(得分:0)

首先要做的是尝试使用常用的包管理系统安装wget。它应告诉您是否已安装;

yum -y wget

否则只需启动如下命令

wget http://download/url/file 

如果没有收到任何错误,那就确定。

答案 4 :(得分:0)

从K3S安装脚本(https://raw.githubusercontent.com/rancher/k3s/master/install.sh)中获得的解决方案

<output id="price_range_5e5851cd67084" for="range_5e5851cd67084">43.199999999999996</output>

说明: 它寻找function download { url=$1 filename=$2 if [ -x "$(which wget)" ] ; then wget -q $url -O $2 elif [ -x "$(which curl)" ]; then curl -o $2 -sfL $url else echo "Could not find curl or wget, please install one." >&2 fi } # to use in the script: download https://url /local/path/to/download 的位置并检查文件是否存在,如果存在,它将进行脚本友好(即安静)下载。如果找不到wget,它会以类似脚本友好的方式尝试wget

(请注意,该问题并未指定BASH,但我的答案假设是BASH。)

答案 5 :(得分:0)

简单运行

wget http://download/url/file 

您将看到端点是否可用的统计信息。