当前位置: 首页>>技术教程>>正文


如何从 bash 脚本中打开文件?

,

问题描述

好的,所以运行 gedit myfile.txt 效果很好。但是,如何使用链接到文件类型的默认桌面应用程序从 bash 脚本中打开文件呢?

我在下面尝试过,在终端中手动运行时效果很好,但是当我把它放在 bash 文件中时,什么也没有发生:

#!/bin/bash
xdg-open "myfile.txt"&

我应该怎么做?

请注意,我也需要在终端关闭后文件保持打开状态。

最佳回答

我认为您的脚本应该可以工作。但是您可以添加一些内容以获取更多信息:

#!/bin/bash
T=`xdg-mime query filetype $1`
echo "opening file "  $1  " of type " $T "with " `xdg-mime query default $T`
xdg-open $1
echo "finished script"

在这样的终端中运行此脚本(名为 my_open.sh)时:

my_open.sh path/to/somefile.txt

我得到以下输出:

opening file  path/to/somefile.txt  of type  text/plain with  gedit.desktop
finished script

它告诉我文件的路径没问题,mimetype 被识别,并且用于打开文件的桌面文件也没问题。并且 gedit 打开有问题的文件。

现在在另一个文件上运行时:

my_open.sh path/to/README

我得到以下输出:

opening file  path/to/README  of type  text/x-readme with
finished script

请注意不同的 mimetype 和丢失的桌面文件。尽管如此,xdg-open 打开所有文本文件的默认值 (gedit)。

因此,您可能希望在脚本中添加类似这样的内容,看看是否得到意外输出(然后您可以将其添加到您的问题中……)。

次佳回答

制作一个 bash 脚本 test.sh 为:

#!/bin/bash
gedit myfile.txt

然后,使脚本可执行为:

chmod +x test.sh

最后,将脚本运行为:

./test.sh

第三种回答

也许 gnome-open 而不是 xdg-open

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12623.html,未经允许,请勿转载。