![시스템 터미널을 여는 Bash 명령](https://linux55.com/image/3739/%EC%8B%9C%EC%8A%A4%ED%85%9C%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%84%20%EC%97%AC%EB%8A%94%20Bash%20%EB%AA%85%EB%A0%B9.png)
저는 오픈 소스 RTS 게임인 Zero-K용 Linux 설치 프로그램(zero-k.info)을 만들고 있습니다. 사용되지만 설치 해야 합니다 zenity
. 아직 가지고 있지 않은 사람이 많기 때문에 스크립트를 통해 설치해야 합니다.dialogs
zenity
zenity
터미널을 열고 피드백을 제공하지 않고 사용자 시스템에 무언가를 설치하고 싶지 않습니다. 피드백이 없으면 실제로 설치 중일 때 아무 일도 일어나지 않는 것처럼 보일 수 있습니다. 문제는 스크립트가 하나 xfce4-terminal
또는 gnome-terminal
다른 DE 특정 터미널에서 열려야 한다는 것입니다. 이는 각 DE가 서로 다른 스크립트를 가져야 함을 의미합니다.
스크립트가 사용하는 OS/DE에서 사용하는 터미널을 여는 명령이 있습니까?
답변1
내가 아는 한,xterm
X Window System의 표준 터미널 에뮬레이터입니다. 따라서 Linux와 유사한 시스템에는 반드시 설치해야 합니다. 이를 열고 명령을 실행하려면 다음을 사용할 수 있습니다.
xterm -e "command [args]"
man xterm
및 을 참조하십시오 xterm -help
.
외부에 다른 터미널 에뮬레이터가 있는지 확인하려면 xterm
다음 예를 사용할 수 있습니다.
if hash gnome-terminal 2>/dev/null; then #if gnome-terminal exists
gnome-terminal -e "command [args]"
elif hash konsole 2>/dev/null; then #if konsole exists
konsole -e "command [args]"
#check the existence of some other terminal emulators here
else #you don't need to check the existence of xterm; this should be installed in any Linux like system
xterm -e "command [args]"
답변2
Debian 및 그 파생 제품(Ubuntu, Mint 등)에서 사용되는 /usr/bin/x-terminal-emulator
이는 Debian의 대체 시스템에서 관리하는 심볼릭 링크이므로 항상 시스템이 선호하는 터미널 에뮬레이터를 가리킵니다.
RHEL, Fedora, Slackware 또는 기타 여러 배포판을 사용하는 경우에는 도움이 되지 않지만 /usr/bin/x-terminal-emulator
Radu의 답변을 구현할 때 먼저 존재하는지 확인할 수 있습니다.