是否有可能在bash脚本中做一些事情,比如将网页内容作为浏览器使用lynx将其存储在一个变量中(实际上只有一个网络访问页面),然后做很多grep来提取信息?
我尝试过这样的事情:
content="$(lynx -dump -nolist $url')"
var1=`cat "$content" | grep myre1`
var2=`cat "$content" | grep myre2`
Run Code Online (Sandbox Code Playgroud)
但我在任务,使用引号,反引号等之间陷入混乱.
如果有人有另一个没有lynx的解决方案:我正在寻找类似lynx --dump"浏览器渲染视图"(而不是wget)的东西,最好避免在系统上创建文件(或者如果这是唯一的解决方案,我该如何继续删除这个临时文件?)
谢谢你和最诚挚的问候
只是修复你的代码.我想回答这个问题
但我在任务,使用引号,反引号等之间陷入混乱.
$()而不是反叛,通常没有区别,但一个很大的优点$()是你可以嵌套它.另外在某些字体中,反引号看起来与单引号相似,如果将代码粘贴到某些网站,它可能会中断,因此$()更稳定." "参数.例如:echo "$myvar",wget "$myurl"[[ ]]而不是[.[是test位于/ bin/test中的命令(和/ bin/[通常是符号链接到/ bin/test),[[ ]]而是bash语法.(但似乎[现在是一个bash内置)let用于数学运算,请使用(( )).例如:(( a = 5 * b )),echo $(( a / 20 ))(( ))的数学比较,而不是[[ ]]因为它可以直观的<= < > >=运营商.示例:if (( a <= b )); then ...代替if [[ $a -le $b ]]; then ...tr其他实用程序.其中一些和更多.示例:使用${myvar^^}而不是echo "$myvar" | tr a-z A-Zcat filename | grep somestr,请grep somestr filename改用.你的固定代码:
content=$(lynx -dump -nolist "$url")
var1=$(grep myre1 <<< "$content")
var2=$(grep myre2 <<< "$content")
Run Code Online (Sandbox Code Playgroud)