Shell-Script

執行shell腳本時如何打開終端?

  • August 5, 2018

在我的作業系統上,沒有辦法手動設置亮度,所以我寫了一個小 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

使用xterm您可以簡單地將您的應用程序作為您正在使用的任何終端仿真器的參數執行。我在這裡使用xterm

$ xterm "./bright.bash"

這將導致您的應用程序在xterm終端內執行:

                                ss1

與 的方法相同gnome-terminal

$ gnome-terminal -e ./bright.bash

                                  SS2

方法 #2 - zenity

您可以使用 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

引用自:https://unix.stackexchange.com/questions/460561