更新:
通过http://nginx.org/en/download.html(http://nginx.org/download/,在下面的原始解决方案中使用,不区分稳定版本和主线版本)确定并下载最新 stable 版本的解决方案 - 有效在 Linux 和 OSX 上:
# Determine the latest stable version's download URL, assumed to be
# the first `/download/nginx-*.tar.gz`-like link following the header
# "Stable version".
latestVer=$(curl -s 'http://nginx.org/en/download.html' |
sed 's/</\'$'\n''</g' | sed -n '/>Stable version$/,$ p' |
egrep -m1 -o '/download/nginx-.+\.tar\.gz')
# Download.
curl "http://nginx.org${latestVer}" > nginx-latest.tar.gz
注意:这依赖于页面 http://nginx.org/en/download.html 的 HTML 结构的细节,这不是最可靠的解决方案。
原始解决方案通过http://nginx.org/download/确定最新版本,其中不区分稳定版本和主线版本:
在 Linux 上,尝试:
# Determine latest version:
latestVer=$(curl 'http://nginx.org/download/' |
grep -oP 'href="nginx-\K[0-9]+\.[0-9]+\.[0-9]+' |
sort -t. -rn -k1,1 -k2,2 -k3,3 | head -1)
# Download latest version:
curl "http://nginx.org/download/nginx-${latestVer}.tar.gz" > nginx-latest.tar.gz
这不依赖于http://nginx.org/download/ 的特定列表顺序;相反,会提取版本号并进行适当的排序。
在 OSX 上 - grep 不支持 -P 和 \K 无法删除匹配的左侧部分,请尝试:
# Determine latest version:
latestVer=$(curl 'http://nginx.org/download/' |
egrep -o 'href="nginx-[0-9]+\.[0-9]+\.[0-9]+' | sed 's/^href="nginx-//' |
sort -t. -rn -k1,1 -k2,2 -k3,3 | head -1)
# Download latest version:
curl "http://nginx.org/download/nginx-${latestVer}.tar.gz" > nginx-latest.tar.gz