长话短说
Exec=gnome-terminal -- bash -c 'script="%u";if [[ -e "$script" ]] ; then "$script" ; else exec bash ; fi'
GNOME 桌面文件中的行运行脚本,但名称中只有空格。如何运行任意名称的脚本?
“我想要的”和我尝试过的内容的完整描述:
我想默认从 Nemo(基于 Nautilus 的文件管理器 AFAIK)在编辑器中打开脚本,但仍然能够在终端中打开,作为 Nemo 中打开这些文件的另一个选项。
网络搜索找到https://askubuntu.com/questions/286621/how-do-i-run-executable-scripts-in-nautilus。对我来说并不新鲜,但是当我在文件管理器中将选项设置为“查看”时,没有在“打开方式”中运行的选项,我必须单独打开终端并输入脚本名称。
我打开了/usr/share/applications/org.gnome.Terminal.desktop
,它运行Exec=gnome-terminal --window
。我找到了https://askubuntu.com/questions/974756/how-can-i-open-a-extra-console-and-run-a-program-in-it-with-one-command并更改了行Exec=gnome-terminal --window
对于示例行Exec=gnome-terminal -- bash -c 'script="%u";if [[ -e "$script" ]] ; then "$script" ; else exec bash ; fi'
,它适用于名称中没有空格的脚本,但对于包含空格的脚本,它不会产生预期的脚本输出。也许没什么大不了的,但我想要更好的。
%u
此处确认的 eg 的含义: https ://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html 。
您链接的freedesktop 页面清楚地写着
我会将 URL 作为参数传递给 bash: