使用 root 权限从启动器运行 shell 脚本

使用 root 权限从启动器运行 shell 脚本

我有一个在 Ubuntu 12.04 上运行 GUI 应用程序的 shell 脚本。

我当前运行该应用程序的方式是打开终端并转到包含该文件的目录,然后执行sudo ./shellScriptFileName该操作即可,但是我遇到了两个问题,一个是这需要花费太多时间所以我想在启动器中添加一个快捷方式其次,终端需要保持打开状态,这很麻烦(希望在我能够从启动器运行它之后这不会成为问题。

澄清:我希望当我的应用程序开始运行时关闭终端。

答案1

步骤如下:

1. 创建交互式呼叫者脚本

因为你想执行脚本然后有终端保持交互模式,我们需要使用一个特殊的调用者脚本,这又需要expect。我们假设您要执行的脚本名为test.sh

  • 安装expectsudo apt-get -y install expect
  • 使用以下格式创建调用者脚本:

    /usr/bin/期望-f
    
    spawn -noecho bash # 创建 shell
    expect "$ " # 等待提示
    发送“cd /path to script\n”#你的脚本目录
    发送“./test.sh\n”#你的脚本名称
    interact #切换到交互模式
    
  • 使调用者脚本call_test.sh可执行

    sudo chmod +x /path/to/call_test.sh

2. 创建启动器

  • 按下Alt+F2,然后输入gksudo gedit /usr/share/applications/TestSH.desktop,其中 TestSH 是您想要调用的启动器图标。
  • 该文件的格式如下:

    [桌面条目]
    Version=1.0 #你的脚本版本
    类型=应用程序
    Terminal=true # 您想要一个终端,所以......
    StartupNotify=true
    Icon=#可以是内置的(/usr/share/icons)
                     # 或自定义文件,SVG 或 PNG
    Name=TestSH # 随便你怎么叫
    评论=#描述
    Exec=/path/to/call-test.sh #调用者脚本的路径
    类别=应用程序;
    
  • 最后,确保实际脚本是可执行的,使用sudo chmod +x /path/to/test.sh

  • 关闭编辑器,然后在 HUD 中搜索“TestSH”(脚本名称);您将看到图标,您可以单击它,也可以将其拖到启动器或桌面以将其添加到那里。

答案2

看来您还没有解决这个问题,您是否访问过我在上面的评论中提供的“如何”链接? 点击我

如果您确认可以通过多种方式解决此问题,那就太棒了。简单来说,我想推荐一种“虚拟”方式来让它为您服务。

  1. 打开终端并输入sudo apt-get install gnome-panel
  2. 安装完成后,输入gnome-desktop-item-edit --create-new ~/Desktop,该命令会弹出“创建启动器”对话框,如下图所示 在此处输入图片描述

    自定义您的设置(名称、命令、图标等)

  3. 完成第 2 步后,您将获得一个快捷方式(它实际上名为 *.desktop,取决于您的设置),您可以随意将其放在您想要的任何文件夹中,然后将其拖放到启动器。

就是这样,享受你的新烘焙快捷方式:-),希望它有所帮助。

答案3

之后让终端保持打开状态并不是一个非常顺利的过程,但这是我的建议:

创建一个包含以下内容的新脚本:gksudo /path/to/shell/script并将其保存到您的桌面。将终端添加到启动器。要打开该程序,请从启动器打开终端,然后单击并将脚本从桌面拖到终端。

或者,如果您不一定需要在程序完成后打开终端,请按照上述方法编写脚本,将其保存到任意目录,然后按照本指南将其变成启动器图标:http://ubuntuforums.org/showthread.php?t=1700605

我希望这个过程更顺利一些,但是,这就是我使用 Kubuntu 的原因......

相关内容