shell脚本检测第一对情侣字母

时间:2010-07-17 14:01:08

标签: unix shell

我正在写一个shell脚本。变量将有一个url,它将查看开头的几个字符和

  1. 确保//...之前有一些东西,http,https,rtmp,rtmps,rtmpe等......
  2. 如果//前面没有任何内容,那么告诉用户什么都没有...否则,如果该值=无论做什么
  3. 我怎么能这样做?

3 个答案:

答案 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))。

这是针对表达式评估的[[ ]]运算符的说明。