自写的桌面快捷方式没有办法打开,终端能打开,有错误提示

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
hanlif
帖子: 211
注册时间: 2012-06-03 11:51

自写的桌面快捷方式没有办法打开,终端能打开,有错误提示

#1

帖子 hanlif » 2018-11-02 10:09

[Desktop Entry]
Encoding=UTF-8
Name=proxyee
Comment=proxyee
Exec=sh /home/xxx/下载/proxyee/proxyee.sh %f
Terminal=false
Type=Application
Icon=/home/xxx/.ProxyeeDown.png
StartupNotify=true
Categories=System;
Name[zh_CN]=proxyee.desktop

终端能打开,却又错误提示
xxx@xxxx-1:~/.local/share/applications$ ./proxyee.desktop
./proxyee.desktop: 行 1: [Desktop: 未找到命令

双击打不开

已经进行过 U+X 授权
头像
astolia
论坛版主
帖子: 6436
注册时间: 2008-09-18 13:11

Re: 自写的桌面快捷方式没有办法打开,终端能打开,有错误提示

#2

帖子 astolia » 2018-11-02 17:07

首先你把一些概念弄混了。
这些启动器,或者你所说的桌面快捷方式,只是相当于一个配置文件,是没法直接作为程序来运行的。
你双击它看似能运行,实际上是由其他程序(一般是窗口管理器或者xdg-open这类专门的运行器)对其内容进行解析,提取出其中Exec=后的内容来运行。
而在终端中直接运行./proxyee.desktop,shell并不具备解析它内容的能力,所以只能当成一般的shell脚本来运行,自然会出错。

再来说你遇到的问题
你双击“打不开”,原因可能有以下几点
1、proxyee.sh是一个纯命令行脚本,需要一个终端环境。对于这种情况需要把Terminal=设置为true。
2、proxyee.sh包含了非posix语法,sh默认指向的dash不认。这种情况一般都是用了bash的语法,可以将sh改成bash
3、proxyee.sh依赖特定的环境变量(比如当前目录必须是/home/xxx/下载/proxyee/),双击运行时的环境变量不一致。这种情况建议你自己修改proxyee.sh内容
回复