传递给shell脚本的检查参数是一个URL
问题描述:
如何检查传递给shell脚本的参数是一个以http或https开头并以.jpg结尾的url?传递给shell脚本的检查参数是一个URL
我有以下代码来检查,但这只能检查参数是否已经通过。
#!/bin/bash
if [ -z "$S1" ]
then
echo "Missing JPG URL"
fi
答
使用模式匹配运算符:(您可能需要启用扩展模式与shopt -s extglob
先在旧版本的bash
)
if [[ $1 != http?(s)://*.jpg ]]; then
echo "Invalid URL"
fi
另外,使用正则表达式:
if [[ $1 =~ https?://.*\.jpg ]]; then
真正的答案是,bash不能这样做。被接受的答案已经足够接近内部使用的脚本或其他东西,但不会在公开分发的实用程序中飞行。 – miken32