运行shell脚本时如何打开终端?

运行shell脚本时如何打开终端?

在我的操作系统上,无法手动设置亮度,因此我编写了一个小 shell 脚本来执行此操作:

#!/bin/sh
echo -n "Set Brightness To (from 0 to 100):"
read answer
echo $((answer * 8 + 50))>/sys/class/backlight/intel_backlight/brightness

但问题是,直接从 GUI 运行脚本不会提示用户在终端上输入(答案 = 0),并且右键单击在终端中运行是脚本提示用户输入所必需的。

如何在执行该脚本时直接显示终端?

答案1

提示输入

方法#1

使用xterm您可以简单地运行您的应用程序作为您正在使用的任何终端模拟器的参数。我在这里使用xterm

$ xterm "./bright.bash"

这将导致您的应用程序在xterm终端内运行:

                                SS1

与 相同的方法gnome-terminal

$ gnome-terminal -e ./bright.bash

                                  SS2

方法#2 - 禅定

您可以使用 GUI 工具包zenity打开一个对话框,要求输入响应,然后获取输入的内容并使用脚本的其余部分来设置它。

例子

$ cat brightness.bash
#!/bin/bash
answer="$(zenity --entry --title='Brightness setting' \
    --text='Set Brightness To (from 0 to 100):')"
echo $((answer * 8 + 50))>/sys/class/backlight/intel_backlight/brightness

如果我们运行它,但只是回显最后一行而不是运行它,我们可以看到它会做什么:

$ ./brightness.bash
echo 450 > /sys/class/backlight/intel_backlight/brightness

用户界面如下所示:

                             SS2

答案2

另一种方法是调用终端程序并告诉它运行命令。大多数终端都可以选择执行此操作;对于 xterm (这是相当老派的),你可以这样做

xterm -e PROGRAMNAME(用命令替换程序名)

相关内容