如何像双击Windows中的.exe文件一样使bash脚本可执行文件?我尝试创建启动器并为其分配脚本,但是有两个结果:


终端闪烁,消失,什么也没做。
您必须指定运行在终端中才能正常工作。我需要使脚本像Windows一样双击运行,因为大多数使用该脚本的人都不熟悉Ubuntu。

忘记上面的解释。我想制作一个无需双击即可运行的脚本,而无需使用终端。有人知道吗?

评论

我认为您可能只是在编写桌面文件时表现不佳。您可以张贴(普通)您编写的.desktop启动器吗?

另外,你看到了吗? askubuntu.com/q/34597/24694

它只是一个启动器,您可以在其中分配名称和命令来完成它,没什么大想法

先生向我提示此事,为我工作:askubuntu.com/questions/286621/…

仅供参考,以供将来的访问者使用:Ubuntu的默认文件管理器Nautilus显然将由于漏洞而在2019年取消在较新版本中运行可执行文件的功能。有关主题和代码的文章在GitLab上进行了讨论

#1 楼

我对此进行了测试,效果很好。确保您的脚本以正确的shebang开头,例如#!/usr/bin/env bash

然后执行以下步骤:


按Alt + F2运行命令。
键入dconf-editor并按Enter。在dconfg-editor中,转到:org ➤ gnome ➤ nautilus ➤ preferences


单击executable-text-activation,然后从下拉菜单中选择:

启动:以程序形式启动脚本。
ORask:通过对话框询问该怎么做。



关闭dconf-editor。就是这样!

另一种方法,使用终端:运行:

gsettings set org.gnome.nautilus.preferences executable-text-activation 'launch'


注意:该文件应该是可执行的。您可能还需要更改文件的权限。右键单击并设置“允许将文件作为程序执行”



源。

评论


这很棒。请注意,通过单击可执行文本激活右侧列出的值可以访问“下拉菜单”(显示默认值)。

–ryanjdillon
13年8月14日在10:50

对于无法调用该应用程序的用户,您需要先使用sudo apt-get install dconf-editor安装它

–whale_steward
15年3月14日在6:35

除台式机外,此功能均可在任何地方使用。如何使它也可以在桌面上运行?我正在使用Xubuntu 14.10。

– shrx
15年3月28日在17:17

在LXDE中(Lubuntu)有没有办法做到这一点?

–childofsoong
15年5月2日在20:05

在slax unix上,这非常有用-请参阅slax.org,以了解可以从拇指驱动器启动的真正出色的Unix系统。

– raddevus
2015年12月5日在22:42

#2 楼

在Nautilus上(AKA文件)



转到文件(在Unity上编辑(17.04或更低版本))>首选项>行为选项卡




更改可执行文本文件的设置。





评论


现在是“文件->首选项”。 (17.04)

–niry
17-09-27在20:23

甜!去恕我直言的路。

– codepleb
17-10-12在6:11

怎么看输出?

– Amr Lotfy
18年8月29日在1:00

#3 楼

我认为在这里缺少创建* .desktop文件:

$ cat shortcut-for-my-script.desktop
[Desktop Entry]
Type=Application
Terminal=true
Name=Click-Script
Icon=utilities-terminal
Exec=gnome-terminal -e "bash -c './script.sh;$SHELL'"
Categories=Application;


如果为一个脚本创建多个* .desktop文件,则可以通过以下方式创建多个配置传递不同的参数,这是一种非常舒适且用户友好的方式。

评论


这是Ubuntu的最佳答案。请注意,除非您实际上是为要在终端窗口中查看其输出的脚本创建快捷方式,否则可能不需要(或可能不需要?)需要指定Terminal = True和Exec = gnome-terminal。请注意,您可以将Icon指向您可能想要的任何自定义png ...

– BuvinJ
19 Mar 20 '19在12:52

将此作为不信任的人

– Mr-程序
19年12月8日在21:07

#4 楼

在Ubuntu和所有基于Unix的操作系统afaik中,默认情况下未将任何文件设置为可执行文件。有两种方法。


右键单击要执行的脚本或文件。转到“属性”,然后转到“权限”选项卡。单击“执行”复选框。
在找到文件的目录中打开一个终端cd。键入chmod ugo+x filename。这样会将文件设置为执行。

现在您的用户可以双击他们喜欢的内容。

评论


它仍然会问您如何在终端中运行或显示或运行...所以这不是我所需要的

–user61928
2012年5月19日下午6:34

只有此答案在Gnome Ubuntu 17.04上有效,以使桌面文件可执行

– Kunok
17年4月14日在21:06



这是为了在终端上执行文件,而不是双击文件。

– DimiDak
19 Mar 26 '19在14:37

此方法不允许您通过双击启动。

– Muyustan
20 Mar 10 '20 at 15:53

#5 楼

如果您使用的是XFce,则可以通过执行以下命令在Thunar中执行脚本:

xfconf-query --channel thunar --property /misc-exec-shell-scripts-by-default \
             --create --type bool --set true


或使用gui xfce4-settings-editor并创建相同的属性。

运行xfce4-settings-editor,然后输入:


/misc-exec-shell-scripts-by-defaultTRUE



评论


关于如何在Thunar中使用自定义操作(不重新启用“风险”功能)来达到目的。

–cipricus
19-09-2在12:38



另外,这里还介绍了如何使用Zenity并出现“编辑或运行?”问题。

–cipricus
19年9月2日在13:14

#6 楼

您必须检查3点:


Nautilus / Nemo配置:https://askubuntu.com/a/286651/301025

脚本文件必须为可执行文件:https://askubuntu.com/a/275714/301025


文件系统必须允许执行:


在文件系统中键入mount控制台
检查文件系统中是否带有noexec标志
通过编辑noexec删除/etc/fstab标志并重新安装修改后的系统(例如,重新启动系统)




#7 楼

当您在桌面中为SHEL脚本或其他命令创建启动时,不要忘记在后台发信号通知该脚本,以在后台执行。 。

评论


我这样做了,但是终端的机率只是闪烁而没有任何反应

–user61928
2012年5月19日下午6:36

#8 楼

基于默认值umask,默认情况下您没有执行文件的权限,必须更改mod以获得执行权限,如下所示:

chmod u+x filename


评论


阿里汤确保我确实做到了

–user61928
2012年5月19日下午6:35

#9 楼

作为有关Thunar的答案的补充:该答案将重新启用Thunar的先前功能,以便在双击时执行脚本。但这功能被认为具有安全风险。

为避免这种情况,也许最优雅的解决方案是弹出一个带有诸如“您要对该文件执行以下操作:编辑?” (类似于PCManFM和Nemo等其他文件管理器中的文件),单击该文件时-使用Zenity:此处。


替代方法是自定义操作,也许是Thunar的最佳功能。

我用于运行可执行文本文件的命令是sh -c %f,自定义操作称为“运行/执行脚本”。



外观条件只是“文本”:


< br类似的命令可用于在终端中运行这样的脚本(“在终端中运行”),同时保持Xfce4终端处于打开状态:

xfce4-terminal -H -x %f




(可选地,最好是为了隐藏除可执行文件之外的所有文本文件的此类选项),一种方法是将外观限制为.sh文件(如果情况如此,则限制为.py文件) “外观条件”:



-相应地重命名可执行文件。

#10 楼

对于Ubuntu 20.04:

打开文件(Nautilus现在被称为“文件”),单击汉堡包菜单并选择“首选项”。 “行为”选项卡,然后从“可执行文本文件”部分中选择合适的内容



#11 楼

专门用于Android Studio您可以在此处遵循我的原始答案:
要创建桌面启动器:

从“工具”菜单中单击Create Desktop Entry..




将提示您输入密码,输入您当前登录的密码。 br />


您可以在Applications =>编程=> Android Studio中看到,并且在重新启动系统后也可以在桌面上看到。 。 :)

#12 楼

操作系统:Linux Mint(我使用的是18.3)

我为此苦苦挣扎了多年,试图找出如何单击(或双击)可执行项并使之运行,而无需进一步的问题。我查看了Nemo Edit-> Preferences下的所有内容。答案实际上非常简单,可以为您设置...我不知道这是否仅适用于Mint。

在桌面上,右键单击并选择“ +创建新的启动器”这里”。接下来是最简单的可想象的对话框之一,您必须在其中选择可执行文件,以及是否还想在“开始”菜单中创建新项目,即仅使用键盘运行。

这是什么?实际上创建的是一个简单的可执行文本文件,例如

[Desktop Entry]
Comment=
Terminal=true
Name=MyScript
Exec=/media/mike/D_drive/My Documents/sysadmin/MyScript.sh
Type=Application


该文件的名称中不需要带有“ .desktop”。

此文件可以在桌面以外的其他地方使用:将其移动/复制到另一个目录,并且也可以在Nemo中双击运行(如果配置了Nemo,也可以单击运行)。