好的,所以跑步gedit myfile.txt
效果很好。但是如何使用链接到文件类型的默认桌面应用程序从 bash 脚本内部打开文件呢?
我在下面尝试过,在终端中手动运行时效果很好,但是当我将它放入 bash 文件时,没有任何反应:
#!/bin/bash
xdg-open "myfile.txt"&
Run Code Online (Sandbox Code Playgroud)
我应该怎么做?
请注意,我还需要在终端关闭后使文件保持打开状态。
xub*_*tix 16
我认为你的脚本应该可以工作。但是您可能会添加一些内容以获取更多信息:
#!/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"
Run Code Online (Sandbox Code Playgroud)
在这样的终端中运行此脚本(名为 my_open.sh)时:
my_open.sh path/to/somefile.txt
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
opening file path/to/somefile.txt of type text/plain with gedit.desktop
finished script
Run Code Online (Sandbox Code Playgroud)
这告诉我文件的路径没问题,mimetype 被识别,用于打开文件的桌面文件也没有问题。并且 gedit 打开有问题的文件。
现在在另一个文件上运行时:
my_open.sh path/to/README
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
opening file path/to/README of type text/x-readme with
finished script
Run Code Online (Sandbox Code Playgroud)
请注意不同的 mimetype 和丢失的桌面文件。尽管如此,xdg-open 打开所有文本文件的默认值 (gedit)。
因此,您可能想在脚本中添加类似的内容,看看是否得到了意外的输出(然后可以将其添加到您的问题中...)。
制作一个 bash 脚本 test.sh 为:
#!/bin/bash
gedit myfile.txt
Run Code Online (Sandbox Code Playgroud)
然后,使脚本可执行为:
chmod +x test.sh
Run Code Online (Sandbox Code Playgroud)
最后,运行脚本:
./test.sh
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
137983 次 |
最近记录: |