如何像在终端运行命令一样从 bash 文件运行命令?

如何像在终端运行命令一样从 bash 文件运行命令?

抱歉,我的问题可能非常幼稚。

我的意思是:如何创建一个可执行脚本/bash 文件来运行更复杂的命令,这些命令通常必须放在终端中?

具体来说,我指的是以下命令:

  • 从以下网站了解到这里
DRI_PRIME=1 glxgears -info

这将启动glxgears并运行 ATI 独立显卡。然后我可以监控它的温度等。但是当我从终端运行它时,我得到了以下信息:

在此处输入图片描述

当我用脚本运行它时

#!/bin/bash

DRI_PRIME=1 glxgears -info

仅可见齿轮窗口,看不到带有文本的另一个窗口。

我希望能够使用 bash 文件并获得第一个结果,然后从启动器运行该文件。


考虑到此页面aria2webgui-aria2aria2通过在终端中运行一个长命令来启动该上下文:

touch /path/to/download/folder/session.txt && aria2c --enable-rpc --rpc-listen-all --save-session=/path/to/download/folder/session.txt --input-file=/path/to/download/folder/session.txt -x16 -s16 -k1M --dir=/path/to/download/folder

如何使用脚本运行它(然后我将从启动器执行)并获得相同的结果和相同的信息?

像这样的脚本(适合我的下载文件夹)

#!/bin/bash

touch /home/cip/Downloads/aria2/session.txt && aria2c --enable-rpc --rpc-listen-all --save-session=/home/cip/Downloads/aria2/session.txt --input-file=/home/cip/Downloads/aria2/session.txt -x16 -s16 -k1M --dir=/home/cip/Downloads/aria2

程序启动时什么也没有给出。

(我在 Xubuntu 14.04)。

答案1

考虑这个脚本(保存为/home/muru/test.sh):

#! /bin/bash
DRI_PRIME=1 glxgears -info

它的基本启动器看起来像(例如,将其保存为/home/muru/test.desktop):

[Desktop Entry]
Type=Application
Terminal=true
Name=glx-gears-info
Exec=/home/muru/test.sh

使它们都可执行:

chmod +x test.sh test.desktop

现在你的主文件夹中应该有这两个条目: 在此处输入图片描述

glx-gears-info尽管启动器的文件名是,但请注意其名称test.desktop。您可以双击它来启动脚本: 在此处输入图片描述


对于类似这样的脚本(例如,位于/home/muru/start-aria.sh):

#!/bin/bash
touch /home/cip/Downloads/aria2/session.txt && \
    aria2c --enable-rpc --rpc-listen-all \
       --save-session=/home/cip/Downloads/aria2/session.txt \
       --input-file=/home/cip/Downloads/aria2/session.txt -x16 -s16 -k1M \
       --dir=/home/cip/Downloads/aria2

(为了便于阅读,我将命令分成多行)启动器文件如下所示(例如/home/muru/start-aria.desktop):

[Desktop Entry]
Type=Application
Terminal=false
Name=Start Aria2
Exec=/home/muru/start-aria.sh

您可以Terminal=false在此处设置,因为此命令可能不需要终端。


要使用 Xfce 启动器时获取终端窗口,请勾选“在终端中运行”。

在此处输入图片描述

第二条命令关闭aria2,可以在同一个 Xfce 启动器中添加:pkill aria2c

还:

  • 通过将它们添加到单个启动器中,

  • 如下图所示设置高级属性

在此处输入图片描述

(即“显示最后使用的项目”和“内部按钮”),

  • 并添加两个特定图标,

启动器将始终显示 aria2 的当前状态:正在运行或已关闭

在此处输入图片描述

答案2

快速回答,试试这个:

#!/bin/bash
DRI_PRIME=1
xfce4-terminal --window -H -x glxgears -info

不知道是否需要所有的开关,但它确实起作用了。

相关内容