使用 Curl 输出 http 状态代码的 Bash 脚本失败,并显示“无法解析主机”

使用 Curl 输出 http 状态代码的 Bash 脚本失败,并显示“无法解析主机”

我是 Bash 脚本的新手,在运行以下脚本时,我总是收到“无法解析主机”的提示。我知道它一定是斜杠或逗号,但我试了所有方法,还是搞不清。我缩短了此示例的站点编号。提前感谢任何线索!

  1 #!/bin/bash
  2 
  3 sites="https://www.example.com/comm/swift-lines/2012-advocate.html,
  4 "
  5 for site in ${sites//, }
  6 do
  7    #code='curl -I -L -k -s -o /dev/null -w  "%{http_code}" "http://${site}"'
  8    
  9    code=`curl -I -w "%{http_code}" "http://${site}"`
 10    echo "${site} ${code}"
 11 done

答案1

  • 你也可以像在其他语言中一样在 bash 中使用数组,我认为在这种情况下这是一个更好的解决方案。使用关键字declare
#!/bin/bash

# Declare the sites array:
declare -a sites=(
    "google.com"
    "stackoverflow.com"
)

# We loop every element in the sites array:
for site in "${sites[@]}"
do
    code=`curl -I -w "%{http_code}" "http://${site}"`
    echo "${site} ${code}"
done

相关内容