시스템 터미널을 여는 Bash 명령

시스템 터미널을 여는 Bash 명령

저는 오픈 소스 RTS 게임인 Zero-K용 Linux 설치 프로그램(zero-k.info)을 만들고 있습니다. 사용되지만 설치 해야 합니다 zenity. 아직 가지고 있지 않은 사람이 많기 때문에 스크립트를 통해 설치해야 합니다.dialogszenityzenity

터미널을 열고 피드백을 제공하지 않고 사용자 시스템에 무언가를 설치하고 싶지 않습니다. 피드백이 없으면 실제로 설치 중일 때 아무 일도 일어나지 않는 것처럼 보일 수 있습니다. 문제는 스크립트가 하나 xfce4-terminal또는 gnome-terminal다른 DE 특정 터미널에서 열려야 한다는 것입니다. 이는 각 DE가 서로 다른 스크립트를 가져야 함을 의미합니다.

스크립트가 사용하는 OS/DE에서 사용하는 터미널을 여는 명령이 있습니까?

답변1

내가 아는 한,xtermX 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-emulatorRadu의 답변을 구현할 때 먼저 존재하는지 확인할 수 있습니다.

관련 정보