Linux 从bash在默认编辑器中打开文件

Linux 从bash在默认编辑器中打开文件,linux,macos,bash,shell,terminal,Linux,Macos,Bash,Shell,Terminal,如何使用bash打开默认GUI编辑器生成的脚本文件 在OSX上有命令open,但据我所知,这在linux上并不存在。什么是好的跨平台替代方案 (在OS X上执行opensomefile.ext与在Finder中双击文件的操作相同)。在linux上,对于特定的桌面环境,您有kde-open和gnome-open,xdg-open更通用,但仍然必须从DE运行 在windows上(显然不是bash而是cmd.exe),我相信类似的命令是start 对于bash,跨平台代码可以是: if which x

如何使用bash打开默认GUI编辑器生成的脚本文件

在OSX上有命令
open
,但据我所知,这在linux上并不存在。什么是好的跨平台替代方案


(在OS X上执行
opensomefile.ext
与在Finder中双击文件的操作相同)。

在linux上,对于特定的桌面环境,您有
kde-open
gnome-open
xdg-open
更通用,但仍然必须从DE运行

在windows上(显然不是
bash
而是
cmd.exe
),我相信类似的命令是
start

对于bash,跨平台代码可以是:

if which xdg-open &> /dev/null; then
    xdg-open $file       # linux
else
    open $file           # mac
fi
最接近这一点的是:

在你的个人资料上

导出编辑器=“~/bin/mate-w”


您的bash使用此编辑器是
xdg open file.ext
选项吗?这意味着您必须编辑每个用户的
.profile
,并以某种方式使其与桌面文件关联数据库中定义的默认应用程序保持同步。您可以随时在bash使用。如果你是为自己写的,当然-你甚至可以在脚本中硬编码你的编辑器。如果是针对其他用户,我看不出你如何断言
mate
是他们想要的。在我的系统上,您的路径甚至无效。“-w”表示什么?它确实有我想要的效果(又名,它编写文件),但在使用Atom时,它会强制打开一堆新窗口,这非常分散注意力。在这种情况下,编辑器是TextMate:-w,--等待TextMate关闭文件。如何更改和查看关联:
$ xdg-open somefile.ext