linux桌面脚本点击运行程序,有关点击 Ubuntu 桌面图标运行 shell 脚本.-汗血宝马...

本文主要是介绍linux桌面脚本点击运行程序,有关点击 Ubuntu 桌面图标运行 shell 脚本.-汗血宝马...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述

背景

用 PyQt4 写了个软件,主要功能已经完成

依赖 conda+OpenCV2 等等重型模块

好在已经完成可调用 .sh

在 GNOME Terminal 中直接使用

$ /path/2/myGUI.sh

形式

可以执行, 并弹出 PyQt4 软件窗口目标

将 python 运行的 GUI 软件变成标准桌面图标

用户双击图标, 即可弹出 PyQt4 构建的软件窗口

环境:

Ubuntu 18.04.2 LTS

conda 4.6.12

Python 2.7.15

opencv 2.4.11

qt 4.8.7

sip 4.18

问题出现的环境背景及自己尝试过哪些方法

尝试

根据: How to create desktop shortcut launcher on Ubuntu 18.04 Bionic Beaver Linux – LinuxConfig.org

手工或是使用 gnome-desktop-item-edit 创建 .desktop 声明,

都可以在桌面形成标准软件图标;

但是, 双击没任何反应,

并没形成 .sh 中记录的运行时日志

两种方式构建的 .desktop 主要差异只是首行是否有

#!/usr/bin/env xdg-open

根据: desktop – How to launch shell script with double click in CentOS 7 – Unix & Linux Stack Exchange

这里建议可以直接链接脚本本身

$ cd $HOME/Desktop

$ ln -s $HOME/bin/myscript.sh MyScript

只是没图标, 也可以接受,

但是,按照文章完成了部署,

到桌面点击依然没任何反应

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

其中 .desktop 声明文件中尝试过:

Exec=/path/2/myGUI.sh

Exec=gnome-terminal -e "bash -c '/path/2/myGUI.sh;$SHELL'"

Exec=gnome-terminal -e "bash -c '/path/2/myGUI.sh'"

Exec=gnome-terminal -e "bash /path/2/myGUI.sh"

Exec=bash /path/2/myGUI.sh

Exec=sh /path/2/myGUI.sh

都不能正常运行, 弹出 PyQt4 构建的软件界面

你期待的结果是什么?实际看到的错误信息又是什么?

分析

参考: How to Create a .Desktop File For Your Application in Linux – Make Tech Easier

发现先决条件是在资源管理器中 right click 可以 run

才能最终用标准 .desktop 图标来调用;

测试发现当前自己写的 .sh 用这种形式无法运行;

这可能是桌面图标无反应的原因;

那么当前问题就变成:

终端中人工输入路径可以运行的 .sh 文件

已经用 chmod a+x 指定可运行属性

为什么, 在 Files (GNOME 资源管理器)中, 右键菜单无法正常运行?

以及这种情况, 如何调试 .sh ?refer

launcher – How to execute a script just by double clicking like .EXE files in Windows? – Ask Ubuntu

发现这种套在终端中运行的形式

Exec=gnome-terminal -e “bash -c ‘./script.sh;$SHELL'”

解决原先脚本运行时参数问题;

73bccf0c0b4af35beddca4274520fb45.png

这篇关于linux桌面脚本点击运行程序,有关点击 Ubuntu 桌面图标运行 shell 脚本.-汗血宝马...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/346771

相关文章

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se