Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 猛击:不寻常的断线_Bash_Url_Line_Href_Break - Fatal编程技术网

Bash 猛击:不寻常的断线

Bash 猛击:不寻常的断线,bash,url,line,href,break,Bash,Url,Line,Href,Break,我在bash中编写了一个小脚本,它读取一些HTML,并应打印链接的href: #!/bin/bash link=$(echo $source | sed -ne 's#^.*<a href="\([^"]*\)".*$#\1#p') if [ "$(echo "$link" | grep '/fonts/list/style')" ] then echo "http://www.domain.com$link/10000" fi 而不是打印 http://

我在bash中编写了一个小脚本,它读取一些HTML,并应打印链接的href:

#!/bin/bash

link=$(echo $source | sed -ne 's#^.*<a href="\([^"]*\)".*$#\1#p')

  if [ "$(echo "$link" | grep '/fonts/list/style')" ]
    then
      echo "http://www.domain.com$link/10000"
  fi
而不是打印

http://www.domain.com/fonts/list/style/home
words/1000

如何删除或避免此换行?

您必须避开出现在
  • 中的
  • 这对我起了作用:

    #!/bin/bash
    
    source="<li><span>19</span><a href=\"/fonts/list/style/home words\">linktext</a></li>"
    
    link=$(echo $source | sed -ne 's#^.*<a href="\([^"]*\)".*$#\1#p')
    
      if [ "$(echo "$link" | grep '/fonts/list/style')" ]
        then
          echo "http://www.domain.com$link/10000"
      fi
    

    不要使用,,…来解析HTML。使用适当的HTML解析器。显示您如何设置
    $source
    ,这可能就是问题所在。此外,您应该在
    echo“$source”
    中引用它。谢谢。我对文章的代码进行了一些简化。如果我将链接保存在一个数组中,例如*catlinks[$I]=$(echo”)**,则会再次中断。你有什么想法吗?这取决于具体情况。更好的方法是跟随,不要使用bash。解决方法是将空格替换为%20作为空格。代码:link=${link//\%20}
    http://www.domain.com/fonts/list/style/home
    words/1000
    
    #!/bin/bash
    
    source="<li><span>19</span><a href=\"/fonts/list/style/home words\">linktext</a></li>"
    
    link=$(echo $source | sed -ne 's#^.*<a href="\([^"]*\)".*$#\1#p')
    
      if [ "$(echo "$link" | grep '/fonts/list/style')" ]
        then
          echo "http://www.domain.com$link/10000"
      fi
    
    http://www.domain.com/fonts/list/style/home words/10000