传递给shell脚本的检查参数是一个URL

时间:2015-10-19 20:02:21

标签: bash shell command-line

如何检查传递给shell脚本的参数是一个以http或https开头并带有.jpg的网址?

我要检查以下代码,但这只检查参数是否已经过了。

#!/bin/bash
if [ -z "$S1" ]
then
   echo "Missing JPG URL"
fi

1 个答案:

答案 0 :(得分:3)

使用模式匹配运算符:

if [[ $1 != http?(s)://*.jpg ]]; then
    echo "Invalid URL"
fi

(您可能需要在较早版本的shopt -s extglob中首先使用bash启用扩展模式。)

或者,使用正则表达式:

if ! [[ $1 =~ https?://.*\.jpg ]]; then