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

标签 linux shell

在 Bash 编程中,我试图设置一个脚本来生成特定链接。随后,我试图让该脚本打开所述链接,如果它不是 404。curl 和我的系统上存在其他程序,但显然我无法获得自动打开的链接明确的命令,例如 firefox [generatedLink]。我可以使用什么来执行以下操作:

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

如果您认为我应该使用其他语言(C++、Python 等)来执行此操作,请告诉我。

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

最佳答案

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。换句话说,它会尽力确保使用用户选择的浏览器。

关于linux - 创建脚本生成链接然后分析有效性,然后在系统默认浏览器中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11726441/

相关文章:

linux - 拱门(xbacklight): No outputs have backlight property

linux - Bash:解析 CSV 并编辑单元格值

amazon-web-services - 如何以其他用户身份在 EC2 上的 Cloudformation 中运行用户数据命令?

linux - 在 ssh 上运行 bash 脚本

c++ - 在c++中使用 "char*"变量的查询

linux - 尝试在 bash 中分割一个大字符串

linux - 在 bash 脚本中循环执行命令时,如何将来自 cURL 的响应主体保存在文件中?

linux - 将 Bash 中的变量列表传递给外部程序

linux - 如何在 bash 命令行上使用 awk 的输出

C中的cd命令用法