我正在写一个shell脚本。变量将有一个url,它将查看开头的几个字符和
我怎么能这样做?
答案 0 :(得分:3)
case "$URL" in
http://*|https://*) echo "HTTP selected" ;;
ftp://*|ftps://*) echo "FTP selected" ;;
*) echo "Nothing selected" ;;
esac
答案 1 :(得分:1)
首先,您应该尝试使用某种语言对其进行编码,例如具有广泛内置正则表达式功能的perl或ruby。但是如果你真的希望在shell中这样做,那么sting操作符就是你的朋友:
url =“something://和其他东西”
$ {url %%:// *}将提取“某事”,i。即正在使用的协议。
$ {url ## *://}将提取“和其他内容”,即右侧的所有内容://
答案 2 :(得分:1)
Ignacio已经演示了如何进行直接字符串匹配,并且ennuikiller展示了一些bash的模式匹配功能。但是对于它的价值(也许和其他人一样令人惊讶),bash确实能够完全正则表达式模式匹配:
一个额外的二元运算符,=〜, 是可用的,具有相同的优先权 as ==和!=。当它被使用时, 操作符右侧的字符串 被认为是一个延长的常规 表达并相应匹配 (如正则表达式(3))。
这是针对表达式评估的[[
]]
运算符的说明。