无法通过双击文件来运行 shell 脚本 (Ubuntu 21.10)

bur*_*ura 7 files 20.10

以前在Nautilus中,问题是这样解决的: How do I runexecutable script in Nautilus?

现在没有这样的部分,org.gnome.nautilus.executable-text-activation 也不起作用。

van*_*ium 4

这个答案可能会让你失望,但就是这样。多年来,Nautilus 开发人员一直反对通过双击可执行文件来到处运行的选项。

\n

争论之一是可执行文件必须经过精心策划。它们应该由知道自己在做什么的用户来运行。否则,如果要由系统的一般用户运行它们,则应将它们正确安装在常规位置。

\n

开发人员将从终端测试他的可执行文件。用户永远不应该面临通过双击文件系统中某处的文件来启动某些(可能是恶意的)进程的风险。我认为这是一个重要的考虑因素,为什么此选项已被弃用,而现在在 Files 40 中,已被有效删除。

\n

您应该这样做:

\n

常规使用的可执行文件

\n
    \n
  • 将您的 shell 脚本放在文件夹~/.local/share/bin~/bin. 这两个文件夹中的任何一个都会自动包含在您的搜索路径 \xe2\x80\x94 中,该变量告诉系统当您在提示符下键入可执行文件的名称时在哪里查找可执行文件。
  • \n
  • 通过在终端或“运行”对话框 ( Alt+ F2) 中输入 shell 脚本的名称来执行该脚本。
  • \n
  • 可以选择通过.desktop~/.local/share/applications.
  • \n
\n

为那些知道自己在做什么的用户临时执行可执行文件

\n

为了快速运行,在当前目录中打开一个终端(文件管理器中的“在此处打开终端”),并指定当前目录运行它,例如

\n
./myscript\n
Run Code Online (Sandbox Code Playgroud)\n

例如,编译软件的高级用户一直这样做。他们进入包含配置脚本的目录,并将其执行为:

\n
./configure\n
Run Code Online (Sandbox Code Playgroud)\n

  • 是的,我不喜欢这个答案;) (2认同)