双击启动脚本不起作用

Hed*_*aud 7 bash scripts

我正在尝试双击启动 bash。

我做了一个简单的脚本:

#!/usr/bin/env bash
echo Hello, who am I talking to?
read varname
echo "It's nice to meet you" $varname
Run Code Online (Sandbox Code Playgroud)

我也尝试过输入 #!/bin/bash 但没有改变

我做到了

sudo chmod +x script_name 
dconf-editor
Run Code Online (Sandbox Code Playgroud)

并在单击时设置启动文件dconf-editor

我还尝试向文件添加 .sh 扩展名,但没有成功。

尽管如此,当我双击该文件时,该文件并未运行。我使用的是 ubuntu 20.04,我没有找到任何关于这个问题的有用帖子。也许我搜索得不够好或不够,所以请随时发送给我

额外情报:

  • 当我从终端启动脚本时,该脚本运行良好,
  • 当我在 dconf-editor 中设置“询问”时,询问我如何打开它,但启动仍然不起作用。
  • 使用“询问”选项,然后单击“在终端中运行”使其工作。但我希望它能够在没有询问窗口的情况下工作,以使其更加用户友好。
  • 使用“sudo”的post Bash 脚本可以从 cli 正确运行,但在单击运行时却无法运行,这对我没有帮助,因为我的脚本中没有 sudo 命令。

预期行为:终端打开并询问“我在说谁?”

多谢。对我的英语水平感到抱歉,我不是本地人。布克

van*_*ium 8

有人会说:“转移到另一个桌面环境”。

在 Ubuntu 使用的 Gnome 桌面环境中,通过在文件管理器中双击任何程序来运行任何程序的功能已被弃用。在某些用例中它确实很方便。在其他用例中,这可能会让用户感到困惑,并且肯定会成为一场安全噩梦。这可能是它被弃用的一个重要原因。

实际上仍然可以进行设置,但是默认情况下不再设置。

  • 如果您是开发人员,需要在开发过程中运行应用程序,请打开终端。输入一次程序名称(用于Tab完成命令。然后使用向上箭头重复该命令。
  • 如果您是需要运行某些应用程序的最终用户,请正确安装它。~/bin在您的或目录中安装或链接可执行文件~/.local/bin。只需键入名称即可从终端运行它,或者在~/.local/share/applications. 然后,您可以从应用程序概述中运行它,甚至可以将其固定到扩展坞上以便快速访问。

.desktop不过,您可以通过设置一个启动器来运行您作为参数提供的文件,从而设置从文件管理器运行文件的功能。.desktop带有该行的启动器将Exec=gnome-terminal -- %f打开 Gnome 终端并(尝试)运行提供的文件名(由%f. 如果它是一个脚本,您将看到它在终端中运行。如果它是图形应用程序,Gnome 终端将短暂加载,但在图形应用程序启动后消失。一个最小的.desktop启动器是:

[Desktop Entry]
Name=Generic application runner
Comment=Runs executable files
Exec=gnome-terminal -- %f
Type=Application    
Run Code Online (Sandbox Code Playgroud)

.desktop文件安装在 中后~/.local/share/applications,您可以通过右键单击并选择“打开方式...”来运行任何程序。您可以将具有特定扩展名的文件(例如.sh脚本)关联到该启动器,以便它在双击时运行。

或者,您至少需要切换到仍然支持该功能的文件管理器,或者切换到另一个桌面环境,例如 Mate 或 Xfce。