bash如何识别链接?

Rox*_*anu 5 bash href hyperlink

在捕获href链接的bash脚本中,bash如何知道TEXT是链接而不是典型的字符串?为什么在$ TEXT ="www.google.com"结束时,TEXT仍然是一个链接?你能用文件做到吗?例如,有一个运行脚本的'Click me'.

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
Run Code Online (Sandbox Code Playgroud)

Mat*_*zok 5

我会说bash本身不识别链接.但是一些终端仿真器确实如此

  • 在gnome终端中键入echo http://www.google.com或"回显www.google.com"终端时允许您点击链接,但echo google.com不会被识别为一个 - 它很可能取决于http://前缀(清楚地表明它是一个链接)或www前缀(通常发生在www地址),
  • E17的术语在这方面与gnome teminal类似,
  • 可能大多数其他终端模拟器将以类似的方式行事,但我可以确认.

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

read openpage
if $openpage -eq "yes"
  # open browser with your URL
fi
Run Code Online (Sandbox Code Playgroud)

其中,如何打开网页,例如描述这里.

至于文件,我会留下来if $runfile -eq "yes" then command; fi.基本上bash并不是出于任何GUI交互的想法 - 毕竟它是终端.