如何在双击时在终端中运行脚本

如何在双击时在终端中运行脚本

摘要:如何将Run in TerminalNautilus 的双击操作设置为默认?

我希望通过双击来运行交互式脚本。要与它交互,我必须看到它运行。

如果我gsettings设置org.gnome.nautilus.preferences executable-text-activationask,那么它会给我一个选择;Run in Terminal做我想做的事;Run不做,因为当脚本需要问我一些事情时,它就会挂起。但是,我不想Run in Terminal每次都点击 。我希望它默认这样做。我以前不知怎么就这么做了。

我尝试将其gsettings设置org.gnome.nautilus.preferences executable-text-activationlaunch;但是,这只是Run默认设置;我看不出有办法将其设置Run in Terminal为默认设置。

我也尝试插入gnome-terminal命令。这会成功弹出一个终端窗口(即使只是Run);但是,我随后需要以某种方式发送全部命令至该终端窗口。

或者,我知道如何将脚本的交互部分(仅)发送到该终端,这对我来说是可行的;但是,在这种情况下,我需要脚本暂停,直到其交互部分完成,然后恢复执行。通常,这可以使用命令来实现wait;事实上,gnome-terminal命令似乎可以gnome-terminal&正常工作,因为它在启动后立即将控制权交给 bash 脚本。

我已经读完了差不多 10 篇重复的帖子如何在 Nautilus 中运行可执行脚本?(包括其他网站),但仍然找不到我的答案。如果有任何其他解决方法,我将不胜感激。

答案1

虽然这并不是你真正要求的,但我相信这仍然是一个很好的选择:

添加右键单击选项以在终端中运行选定的脚本

  1. 创建一个小脚本:

    #!/bin/bash
    gnome-terminal -e $1 
    
  2. 将其另存为run_interminal.sh~/.local/share/nautilus/scripts如果目录不存在,则创建该目录。

  3. 使脚本可执行。
  4. 注销并重新登录。

就这样。选择一个脚本并选择Scripts--> runinterminal.sh

在此处输入图片描述

或者;在终端中拖放运行

将(可执行)脚本拖到启动器上以在终端中运行它:

  1. 将以下代码复制到一个空文件中,并将其保存在桌面上run_script.desktop

    [Desktop Entry]
    Name=Run Script
    Type=Application
    Exec=gnome-terminal -e %u
    Terminal=true
    
  2. 使其可执行

就是这样。现在,当将可执行脚本拖到图标上时,它将在 (gnome-) 终端中运行。

重要的提示

如上所述,脚本run_interminal.sh需要可执行才能出现在菜单中。
事实上,要运行的脚本也需要可执行。run_interminal.sh可以轻松设置为自动使目标脚本可执行或调用解释器。如果需要,请提及。

答案2

此解决方案应适用于所有:

  • 支持“可配置个人操作”的文件管理器。

  • 配置为双击打开文件的文件管理器。

  • x 终端仿真器具有执行选项:“-e”或“--execute”。

  • 具有可执行权限的脚本。

编辑

使用 thunar 文件管理器进行测试,然后我安装了 nautilus,现在双击两者的执行脚本。

1- 右键单击​​你的脚本

2-选择“打开方式”

3-单击“使用其他应用程序打开”

4-单击“使用命令打开”

5-选中“对此类文件使用此操作”

6-在文本区域中输入以下命令: x-terminal-emulator -e "/bin/bash %f"

7-单击打开,您的脚本将在终端窗口中执行。

8- 重启文件管理器

现在,每次双击脚本时,它都会被执行。

答案3

找到了问题的简短解决方案。添加--disable-factory到 gnome-terminal 选项使其等待终端完成,然后再继续执行脚本的其余部分。

相关内容