如何使用终端命令访问 Ubuntu 菜单项?

如何使用终端命令访问 Ubuntu 菜单项?

我需要运行一个 bash 脚本,该脚本将检索位于特定菜单项(如附件/实用程序或教育等)中的所有桌面文件,然后运行其中的特定文件。我可以使用哪些终端命令来执行此操作?

答案1

这些.desktop文件位于/usr/share/applications/(系统范围)或~/.local/share/applications(每个用户)下。分类是通过在文件中设置“类别”属性来完成的,这可能与菜单中显示的不完全相同,因此您首先需要找出正确的类别名称。在我的菜单中有一个名为“Büro”的类别,这是德语中“Office”的意思,它包含一个启动器qpdfview。要查看.desktop文件的“类别”行,我运行:

$ grep Categories /usr/share/applications/qpdfview.desktop 
Categories=Viewer;Office;

这显示了该程序的两个类别,因此它在文件中被称为“Office” 。为了获取所有归类为“Office”的文件.desktop列表,我再次使用标志仅显示没有匹配项的文件名:.desktopgrep-l

$ grep -l Categories.*Office /usr/share/applications/*
/usr/share/applications/evince.desktop
/usr/share/applications/evince-previewer.desktop
/usr/share/applications/gnucash.desktop
/usr/share/applications/libreoffice-base.desktop
/usr/share/applications/libreoffice-calc.desktop
/usr/share/applications/libreoffice-draw.desktop
/usr/share/applications/libreoffice-impress.desktop
/usr/share/applications/libreoffice-math.desktop
/usr/share/applications/libreoffice-startcenter.desktop
/usr/share/applications/libreoffice-writer.desktop
/usr/share/applications/qpdfview.desktop

这就是我们的办公程序列表,现在要运行它们我只需使用xdg-open,例如:

xdg-open /usr/share/applications/qpdfview.desktop

如果xdg-open您的系统不起作用,您也可以从文件中提取启动命令并直接运行它,例如:

exec $(grep -Po 'Exec=\K[^ ]*' /usr/share/applications/qpdfview.desktop)

您没有提供有关您或脚本用户应如何选择要运行的程序的信息,因此这里有一些链接可以帮助您:

将文件名保存在数组中以便在脚本中轻松处理就是这么简单:

options=("$(grep -l Categories.*Office /usr/share/applications/*)")

相关内容