如何从 Bash 脚本内部打开文件?

如何从 Bash 脚本内部打开文件?

好的,运行gedit myfile.txt正常。但是如何使用链接到文件类型的默认桌面应用程序从 bash 脚本内部打开文件呢?

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

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

我应该做什么呢?

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

答案1

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

#!/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)。

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

答案2

创建一个 bash 脚本 test.sh 如下:

#!/bin/bash
gedit myfile.txt

然后,使脚本可执行如下:

chmod +x test.sh

最后,运行脚本如下:

./test.sh

答案3

或许gnome-打开代替xdg-开放

答案4

你的问题的第一部分

如果您愿意的话,您可以使用命令cat在终端内打开一个文件(它在您的问题的第一部分中说明)。

要使用它您只需输入cat FILENAME

其他信息

如果您需要更多命令: 以下是一份好的命令列表。

GNOME 默认编辑器

如果您想在 GNOME 的默认应用程序中打开该文件gedit

要使用它,只需输入gedit FILENAME

相关内容