쉘 스크립트를 실행할 때 터미널을 어떻게 열 수 있나요?

쉘 스크립트를 실행할 때 터미널을 어떻게 열 수 있나요?

내 OS에는 밝기를 수동으로 설정할 수 있는 방법이 없으므로 이를 수행하기 위해 작은 쉘 스크립트를 작성했습니다.

#!/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 -e PROGRAMNAME(프로그램 이름을 명령으로 대체)

관련 정보