文件无法作为程序运行

文件无法作为程序运行

在阅读关于如何使文件在运行时在终端中运行命令,我也试着自己做了一下。

我创建了一个新文档,输入了以下内容并保存。

#! /bin/bash

echo "this is a test"

然后我去Right-Click > Properties > Permissions检查“允许将文件作为程序执行”。

但是,当我双击该文档时,它只会在我的文本编辑器(我相信是 gedit)中打开。在右键单击菜单中,我没有看到在终端中运行该文件的选项。

我也尝试过对其他文件执行此操作。例如,我安装了 WINE 并尝试安装 Windows 程序。WINE 说只需运行安装程序,但我尝试时什么也没发生。我将其标记为作为程序运行,但它仍然不起作用。我只能通过Right-Click > OpenWith选择 WINE 来安装它。

奇怪的是,我将 Keepass-2.28 Portable 文件夹从 Windows 分区复制到 Ubuntu 分区,并尝试运行可执行文件。Keepass 立即启动,尽管我尚未将该文件标记为作为程序运行。如果这有区别的话,我的系统上安装了来自存储库的 Keepass 2.25。

我已经在双启动设置中运行 Ubuntu 14.04 好几个星期了。我能想到的唯一会搞砸这件事的事情是我使用 Synaptic 包管理器删除了一个包,KDE Desktop Environment试图卸载我通过终端安装的备用桌面环境。我不记得那个包是什么了,但目前该类别中唯一的包是appmenu-qt5。据我所知,删除那个包没有影响任何东西,而且我很确定自从我得到 Ubuntu 以来,我在将文件作为程序运行方面遇到了问题。

编辑:我已经检查过了,我不认为这个问题是重复的这个问题。我的 Ubuntu 位于 ext4 分区上,我尝试从那里运行程序。我还没有尝试通过终端或类似方式更改权限,我只是尝试在选中属性菜单中的选项时让程序运行。如果我错了或遗漏了什么,请纠正我。

答案1

帮助Right-Click > Properties > Permissions解释了这种行为:

如果文件是程序(例如脚本),则必须选择“允许将文件作为程序执行”才能运行它。即使选择了此选项,文件管理器仍可能会在应用程序中打开该文件或询问您要做什么。有关更多信息,请参阅可执行文本文件。

双击脚本时的默认操作是在编辑器中打开它。要更改此选项:

  1. 单击启动器中的“文件”,Edit > Preferences然后选择“行为”选项卡:

    在此处输入图片描述

  2. 选择打开可执行文本文件时的默认操作:

    • 打开时运行可执行文本文件
    • 打开时查看可执行文本文件
    • 每次都询问

“每次询问”可能是这里的正确设置,因为当您只想打开文本文件时,您肯定不想意外执行脚本,特别是因为可执行和不可执行文本文件共享相同的图标。

答案2

我怀疑您需要更改文件管理器的设置,以便它可以直接运行 bash 脚本,或者询问您是否要运行脚本或显示代码。

我不知道当前版本的 Ubuntu 文件管理器是否以相同的方式工作,但几年前的修复方法如下:

“打开 Nautilus 文件管理器并单击窗口右上角的齿轮(位置选项)。导航至首选项 - 文件首选项 - 行为 - 可执行文本文件。一组单选按钮允许设置默认选项。我的偏好是“每次询问”。然后,当我双击脚本文件时,我可以选择运行脚本或显示(编辑)其内容。”

(看:https://linuxnorth.wordpress.com/2013/11/02/running-bash-scripts-in-ubuntu/

答案3

编辑:此解决方案适用于单个文件,但如果您想在整个系统范围内改变这种行为(即每个可执行文本文件),请查看其他答案。


您需要创建一个.desktop文件才能直接从以下位置运行脚本Nautilus

  1. .desktop在所需位置创建文件:gedit /<path_to_dektop_file>/test.desktop
  2. 粘贴以下代码
  3. 节省
  4. 出口
  5. 使文件可执行:chmod u+x /<path_to_dektop_file>/test.desktop

代码:

[Desktop Entry]
Type=Application
Name=Test
Exec=/<path_to_shell_script>/test.sh

然后只需双击.desktop创建的文件。

相关内容