双击启动脚本不起作用

双击启动脚本不起作用

我正在尝试双击来启动 bash。

我写了一个简单的脚本:

#!/usr/bin/env bash
echo Hello, who am I talking to?
read varname
echo "It's nice to meet you" $varname

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

我做到了

sudo chmod +x script_name 
dconf-editor

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

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

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

更多信息:

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

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

非常感谢。抱歉,我的英语水平不是母语。Bouq

答案1

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

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

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

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

不过,您可以通过设置一个启动器来运行.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    

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

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

答案2

有很多方法可以解决你的问题。

桌面应用程序

您可以创建具有名称和目录的文件~/.local/share/applications/abc.desktop

[Desktop Entry]
Type=Application
Terminal=true
Name=Click-Script
Icon=</path/>
Exec=gnome-terminal -e "bash -c './script.sh;$SHELL'"
Categories=Application;

更新 Nautilus 的偏好设置

打开文件(可能叫做 Nautilus)-> 首选项 -> 行为

选择Ask what to do

答案3

在 Ubuntu 22.04 中,我右键单击,然后“作为程序运行”,这并不比双击麻烦多少,但我总是忘记。当我双击时,它会打开编辑器。

答案4

这些脚本被视为可执行文件,因此您只能从环境中调用。(除非您需要编辑它们)。

我用这个方法完成了这些任务(在 KDE 等离子环境中)

  1. 在您的桌面上创建一个包含此内容的 .desktop 文件

[桌面条目]
注释 = 链接到我的脚本
Exec = /path/to/your/script
GenericName =
Icon = system-run
名称 = 链接到我的脚本
StartupNotify = true
Terminal = true
TerminalOptions =
类型 = 应用程序

  1. 保存并执行“双击”以最终展示魔术!

笔记
选项“Terminal=true”.
您可以在终端窗口中调用您的任务。

笔记2
显然你可以在 Dolphin 中的“打开可执行文件时”选项中设置“始终询问”(Ctrl + shift +,)

相关内容