分页: 2 / 2

Re: 如何在终端执行.desktop文件?

发表于 : 2009-08-19 19:32
photor
:em09

Re: 如何在终端执行.desktop文件?

发表于 : 2009-09-03 22:00
aerofox
mir_lww 写了:直接在终端输入:

代码: 全选

sh xxx.desktop
不需要可执行权限。
修改Screenlets时无意中发现的~~~

不过xxx.desktop 的写法要一个限制:包含“Exec”那一行,“=”和要执行的程序之间要留一个空格。也就是Exec=XXX是无法通过“sh xxx.desktop”执行,正确的是Exec= XXX。
很奇怪的sh。。。。。。。
这么执行确实是……碰巧罢了,而且可能会有副作用啊。
如果 Name 中包含几个单词:
Name=A sample application
那么会意外地执行一些程序或报错(本例中试图执行 sample)。

Re: 如何在终端执行.desktop文件?

发表于 : 2009-11-21 18:14
Ur@nus
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不好意思哈,在你的命令基础上改的。 :em04

Re: 如何在终端执行.desktop文件?

发表于 : 2009-11-21 18:55
zhu527812567
2L的是关键
抽取 Exec=后面的那个命令行

Re: 如何在终端执行.desktop文件?

发表于 : 2009-11-29 22:38
INUYASHA
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 貌似其内部有个纠错规则

Re: 如何在终端执行.desktop文件?

发表于 : 2010-01-31 18:58
tusooa
Exec= app
执行app,将Exec的值设为。
exec= app
执行app,将exec的值设为。
exec app
用app替代这个shell
Exec app
执行Exec,将命令行参数设为app。

代码: 全选

grep '^Exec=' file.desktop | sed -e 's!^Exec=!!;q'
这个是正解