
如何在终端执行.desktop文件?
- photor
- 论坛版主
- 帖子: 11004
- 注册时间: 2008-04-26 12:41
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: 如何在终端执行.desktop文件?
这么执行确实是……碰巧罢了,而且可能会有副作用啊。mir_lww 写了:直接在终端输入:不需要可执行权限。代码: 全选
sh xxx.desktop
修改Screenlets时无意中发现的~~~
不过xxx.desktop 的写法要一个限制:包含“Exec”那一行,“=”和要执行的程序之间要留一个空格。也就是Exec=XXX是无法通过“sh xxx.desktop”执行,正确的是Exec= XXX。
很奇怪的sh。。。。。。。
如果 Name 中包含几个单词:
Name=A sample application
那么会意外地执行一些程序或报错(本例中试图执行 sample)。
- Ur@nus
- 帖子: 622
- 注册时间: 2006-12-01 23:02
Re: 如何在终端执行.desktop文件?
xiooli 的思路很好但是命令中有等号就不行了。比如
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Google Reader
Exec=/opt/google/chrome/google-chrome --app="http://www.google.com/reader/view/#"
Terminal=false
Icon=/home/uranus/.fvwm/HUD/HUD_Transparant_Leopard_Icons_by_bodysoulspirit/HUD_Transparant_Leopard_Icons_by_bodysoulspirit/White Border/transdock/Calendar.png
Type=Application
Categories=Application;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml_xml;
把“Exec=”后面的用sed提取出来(也就是把前面的段去掉)可以了。
#!/bin/bash
eval "`grep [eE]xec $1|sed 's/[Ee]xec=//'`"
存成desktop.sh
然后想运行*.desktop文件就直接 ./desktop.sh Google_Reader.desktop 就ok了。
xiooli不好意思哈,在你的命令基础上改的。
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Google Reader
Exec=/opt/google/chrome/google-chrome --app="http://www.google.com/reader/view/#"
Terminal=false
Icon=/home/uranus/.fvwm/HUD/HUD_Transparant_Leopard_Icons_by_bodysoulspirit/HUD_Transparant_Leopard_Icons_by_bodysoulspirit/White Border/transdock/Calendar.png
Type=Application
Categories=Application;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml_xml;
把“Exec=”后面的用sed提取出来(也就是把前面的段去掉)可以了。
#!/bin/bash
eval "`grep [eE]xec $1|sed 's/[Ee]xec=//'`"
存成desktop.sh
然后想运行*.desktop文件就直接 ./desktop.sh Google_Reader.desktop 就ok了。
xiooli不好意思哈,在你的命令基础上改的。

- zhu527812567
- 帖子: 883
- 注册时间: 2009-11-17 12:29
- 联系:
Re: 如何在终端执行.desktop文件?
2L的是关键
抽取 Exec=后面的那个命令行
抽取 Exec=后面的那个命令行
- INUYASHA
- 帖子: 366
- 注册时间: 2007-03-16 15:42
Re: 如何在终端执行.desktop文件?
貌似直接在终端运行mir_lww 写了:直接在终端输入:不需要可执行权限。代码: 全选
sh xxx.desktop
修改Screenlets时无意中发现的~~~
不过xxx.desktop 的写法要一个限制:包含“Exec”那一行,“=”和要执行的程序之间要留一个空格。也就是Exec=XXX是无法通过“sh xxx.desktop”执行,正确的是Exec= XXX。
很奇怪的sh。。。。。。。
Exec= 程序
exec= 程序
和
exec 程序 结果等效
直接Exec 程序
提示bash: Exec: command not found
真是奇怪的bash 貌似其内部有个纠错规则