【问题标题】:Run shell script by double clicking .desktop file to launch python script通过双击 .desktop 文件来运行 shell 脚本以启动 python 脚本
【发布时间】:2017-02-05 15:31:50
【问题描述】:

我有一个名为script.py 的python 脚本,我想双击script.desktop,它会执行shell 文件script.sh,然后执行python 文件:script.py

我的script.desktop 文件包含:

[Desktop Entry]
Name=jobs
Comment=jobs
Exec=/home/user/Desktop/school_scrape/script.sh
Icon=/home/user/Desktop/school_scrape/icon.png
Terminal=true
Type=Application  

我的 shell 文件 script.sh 如下所示:

#!/bin/bash
echo "hi"
sleep 2m

我最终希望它在通过 shell 文件执行时执行 script.py 文件,但首先让它回显 hi 是有意义的

我什至不能让它输出hi 虽然在终端中当我双击script.desktop 时它只是挂起而没有错误。

首先我希望它只运行.desktop 文件,它运行.sh 文件,并输出你好,然后我担心执行 python 文件。

知道我做错了什么吗?

【问题讨论】:

  • 你设置chmod +x script.py了吗?那么它可以通过双击运行而你不需要script.sh
  • @furas - 是的,已经这样做了
  • 如果您在script.py 中有#!/full/path/python,那么您可以尝试Exec=/home/user/Desktop/school_scrape/script.py 或在script.sh 中使用/full/path/script.py。如果您在script.py 中没有#!/full/path/python,那么您在script.sh 中需要python /full/path/script.py
  • @furas 请看问题,我现在不想让 python 文件运行。我想做的就是让它在终端中输出hi,当我双击.desktop文件时,最终目标是让python脚本运行,但hi是一个好的开始
  • 要运行脚本(python 或 sh),您需要两件事 - 脚本中的 chmod +x#!/full/path/python#!/bin/bash (shebang)。

标签: python shell python-3.x user-interface


【解决方案1】:

script.sh

#!/bin/bash
echo "hi"

read

设置 chmod +x script.sh 并在控制台/终端中手动尝试 - 您可能必须在开始时添加 ./ 才能运行它

./script.sh

script.desktop

在 Linux Mint 系统中,在第一行添加 #! - 所以它可能需要它。

#!/usr/bin/env xdg-open
[Desktop Entry]
Name=jobs
Comment=jobs
Exec=/home/user/Desktop/school_scrape/script.sh
Icon=/home/user/Desktop/school_scrape/icon.png
Terminal=true
Type=Application  

设置chmod +x script.desktop并尝试点击它

script.py

#!/usr/bin/env python

print("Hello World!")

input()

设置chmod +x script.py并在控制台/终端中手动尝试

./script.py

添加到script.sh - 最好使用完整路径

#!/bin/bash
echo "hi"

/home/user/Desktop/school_scrape/script.py

(因为 script.py 有shebang 并设置了chmod +x,所以你不必在script.sh 中使用python。你甚至可以删除文件和脚本中的扩展名)

或者直接在.desktop中使用

script-py.desktop

#!/usr/bin/env xdg-open
[Desktop Entry]
Name=jobs-py
Comment=jobs-py
Exec=/home/user/Desktop/school_scrape/script.py
Icon=/home/user/Desktop/school_scrape/icon.png
Terminal=true
Type=Application  

设置chmod +x script-py.desktop并尝试点击它

【讨论】:

  • 谢谢,这行得通。我只是将python script.py 添加到script.sh 吗?我很快就会接受。非常感谢!
  • 您可以将python script.py添加到script.sh,也可以直接在.desktop文件中使用script.py
  • 如何在.desktop中直接使用?
  • 您可以直接在.desktop 中使用与script.sh 相同的方式 - 请参阅答案中的新文本。 script.shscript.py 与正确的 shebangchmod +x 被 Linux 以相同的方式处理。
【解决方案2】:

您是否尝试在 script.sh 中插入以下行:python script.py

或者您可以使用命令使其可执行:chmod +x script.py 并在 script.sh 中写入:./script.py

【讨论】:

猜你喜欢
  • 2018-08-15
  • 2021-07-12
  • 2011-07-28
  • 2011-10-26
  • 1970-01-01
  • 2011-07-04
  • 2016-09-27
  • 1970-01-01
  • 2017-04-07
相关资源
最近更新 更多