2013-11-24 62 views
3

在一个捕获href链接的bash脚本中,bash如何知道TEXT是链接而不是典型的字符串?为什么最后当$ TEXT =“www.google.com”时,TEXT仍然是一个链接?你可以用文件做到这一点吗?例如有一个运行脚本的“点击我”。bash如何识别链接?

shopt -s nocasematch 

TEXT='<a href="http://www.google.com/search/something/lulz/here2 i=!mfo1iu489fn1o2jlk21m4098mdoi">"test link"</a><br>' 

TEXT=${TEXT##*href=\"} 
TEXT=${TEXT%%\"*} 
TEXT=${TEXT##*//} 
TEXT=${TEXT%%/*} 

echo $TEXT 
+0

如何判断bash *知道什么是链接*? – choroba

回答

4

我会说,bash本身并不能识别链接。但是,一些终端仿真器确实

  • 在GNOME终端,当你键入echo http://www.google.com或“回响www.google.com”端有让你点击链接,但echo google.com不会被识别为一个 - 它最有可能取决于http://前缀(这清楚地表明它是一个链接)或www前缀(往往发生在WWW ADRESS),
  • E17的术语行为类似于它在这方面使用gnome端子短接,
  • 可能大多数其他终端仿真器将以类似的方式起作用,但那2我可以证实。

从如何使用bash脚本我会说,没有实现独立的方式来将可点击的URL添加到bash中。但是您可以使用描述的方式在终端仿真器中获得类似的行为。可替代地,从用户获得一些是 - 否可变的,并且在条件程序调用使用它:

read openpage 
if $openpage -eq "yes" 
    # open browser with your URL 
fi 

其中如何打开网页被例如描述here

至于文件,我只会留在if $runfile -eq "yes" then command; fi。基本上bash不是在任何GUI交互的基础上进行的 - 毕竟这是一个终端。