在阅读关于如何使文件在运行时在终端中运行命令,我也试着自己做了一下。
我创建了一个新文档,输入了以下内容并保存。
#! /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
解释了这种行为:
如果文件是程序(例如脚本),则必须选择“允许将文件作为程序执行”才能运行它。即使选择了此选项,文件管理器仍可能会在应用程序中打开该文件或询问您要做什么。有关更多信息,请参阅可执行文本文件。
双击脚本时的默认操作是在编辑器中打开它。要更改此选项:
单击启动器中的“文件”,
Edit > Preferences
然后选择“行为”选项卡:选择打开可执行文本文件时的默认操作:
- 打开时运行可执行文本文件
- 打开时查看可执行文本文件
- 每次都询问
“每次询问”可能是这里的正确设置,因为当您只想打开文本文件时,您肯定不想意外执行脚本,特别是因为可执行和不可执行文本文件共享相同的图标。
答案2
我怀疑您需要更改文件管理器的设置,以便它可以直接运行 bash 脚本,或者询问您是否要运行脚本或显示代码。
我不知道当前版本的 Ubuntu 文件管理器是否以相同的方式工作,但几年前的修复方法如下:
“打开 Nautilus 文件管理器并单击窗口右上角的齿轮(位置选项)。导航至首选项 - 文件首选项 - 行为 - 可执行文本文件。一组单选按钮允许设置默认选项。我的偏好是“每次询问”。然后,当我双击脚本文件时,我可以选择运行脚本或显示(编辑)其内容。”
(看:https://linuxnorth.wordpress.com/2013/11/02/running-bash-scripts-in-ubuntu/)
答案3
编辑:此解决方案适用于单个文件,但如果您想在整个系统范围内改变这种行为(即每个可执行文本文件),请查看其他答案。
您需要创建一个.desktop
文件才能直接从以下位置运行脚本Nautilus
:
.desktop
在所需位置创建文件:gedit /<path_to_dektop_file>/test.desktop
- 粘贴以下代码
- 节省
- 出口
- 使文件可执行:
chmod u+x /<path_to_dektop_file>/test.desktop
代码:
[Desktop Entry]
Type=Application
Name=Test
Exec=/<path_to_shell_script>/test.sh
然后只需双击.desktop
创建的文件。