繁体   English   中英

创建脚本以生成链接,然后分析有效性,然后在系统上的默认浏览器中打开

[英]Create a script to generate a link and then analyze for validity, and then open in default browser on system

在Bash编程中,我正在尝试设置脚本以生成特定链接。 随后,我试图让该脚本打开所述链接,如果它不是404. curl和我的系统上存在其他程序,但显然我无法获得autoopen的链接,而没有明确定义命令,如firefox [generatedLink] 我可以用什么来做以下事情:

(1)分析curl的输出以确定生成的链接是否有效(即不返回404),和
(2)提示用户是否要在浏览器中打开链接,如果他们说是,则打开系统上的默认浏览器到该生成的链接?

如果您认为我应该使用其他语言(C ++,Python等),请告诉我。

注意我只希望这在Linux上运行。 它不需要是跨平台的。

如果你使用curl ,那么只需用I开关检查服务器的响应头。

STATUS=`curl -I $URL | head -n 1`
#=> HTTP/1.1 200 OK

根据您的查找内容,您可以查看状态代码或消息。

STATUS=`curl -I $URL | head -n 1 | awk '{print $NF}'`

if [ $STATUS -eq "OK" ] ; then
    echo -n "URL returns an OK message, open browser (Y/n)?"
    read -s OKAY_BROWSER 
    if [ $OKAY_BROWSER -eq "Y" ]; then
          ...
    fi
fi
if HEAD "${URL}" >/dev/null; then
    printf '%s' 'URL ok, open browser? [y/n] '
    read -n 1
    echo

    if [ "${REPLY}" = y ]; then
        xdg-open "${URL}"
    fi
else
    echo 'URL not ok.'
fi

现在简短解释一下:

  1. HEAD是libwww-perl的快速脚本。 我用它是因为它很简单。 它只是一个HEAD请求,所以它是轻量级的,如果URL给出一个,它会退出并出错;
  2. 问题部分在这里并不重要。 这只是众多解决方案中的一个;
  3. xdg-open是一个很好的脚本,可以检测您正在使用的桌面环境,并使用首选应用程序打开URL。 换句话说,它努力确保使用用户选择的浏览器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM