![如何像在终端运行命令一样从 bash 文件运行命令?](https://linux22.com/image/863573/%E5%A6%82%E4%BD%95%E5%83%8F%E5%9C%A8%E7%BB%88%E7%AB%AF%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%E4%B8%80%E6%A0%B7%E4%BB%8E%20bash%20%E6%96%87%E4%BB%B6%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
抱歉,我的问题可能非常幼稚。
我的意思是:如何创建一个可执行脚本/bash 文件来运行更复杂的命令,这些命令通常必须放在终端中?
具体来说,我指的是以下命令:
- 从以下网站了解到这里:
DRI_PRIME=1 glxgears -info
这将启动glxgears
并运行 ATI 独立显卡。然后我可以监控它的温度等。但是当我从终端运行它时,我得到了以下信息:
当我用脚本运行它时
#!/bin/bash
DRI_PRIME=1 glxgears -info
仅可见齿轮窗口,看不到带有文本的另一个窗口。
我希望能够使用 bash 文件并获得第一个结果,然后从启动器运行该文件。
考虑到此页面aria2
上webgui-aria2
,aria2
通过在终端中运行一个长命令来启动该上下文:
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
不知道是否需要所有的开关,但它确实起作用了。