问题描述
好的,所以运行 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