두 개의 터미널이 설치되어 gnome-terminal
있고 xfce4-terminal
.
>
xfce 터미널이 시작 시 간단한 프롬프트만 표시하기를 원합니다 . 프롬프트는 gnome-terminal
동일하게 유지되어야 합니다(따라서 bashrc
수정이 없다고 가정합니다).
xfce-terminal
일부 매개변수가 있는 스크립트나 다른 터미널에서 시작해 도 괜찮습니다 .
나는 시도했다:
xfce4-terminal -x export PS1='> '
그러나 이는 오류를 발생시키며 분명히 불가능합니다.
약간 해킹되더라도 어떤 솔루션이라도 환영합니다.
답변1
이름을 변경 .bashrc
하고 상위 프로세스의 이름을 테스트하십시오.
parent_process=$(ps -o comm= -p $PPID)
parent_process=${parent_process##*/}
case "$parent_process" in
xfce4-terminal) PS1='> ';;
esac
또 다른 방법은 환경 변수를 설정하는 것입니다. run PROMPT_THEME=plain xfce4-terminal
및 PROMPT_THEME
test .bashrc
거기에서 변수를 설정 해제하거나 최소한 내보내기를 취소할 수 있습니다. 그렇지 않으면 첫 번째 터미널에서 시작된 터미널에도 설정됩니다.
case $PROMPT_THEME in
plain) PS1='> ';;
esac
export -n PROMPT_THEME
의 경우 xfce4-terminal
첫 번째 인스턴스를 제외하고는 작동하지 않습니다. 후속 인스턴스는 실행 중인 인스턴스에 새 창을 열도록 알리므로 새 인스턴스는 실행 중인 인스턴스에서 환경을 상속합니다. (예!) 유틸리티를 사용하여 터미널에서 실행되는 명령을 통해 환경 변수를 설정할 수 있습니다 env
.
xfce4-terminal -x env PROMPT_THEME=plain bash
답변2
어떤 터미널이 열려 있는지 확인하세요.
case "$TERM" in
gnome-terminal ) PS1="[\h] \W > \[\033]0;[\u@\h] \w\007\]"
;;
xfce4-terminal ) PS1="> "
;;
esac
답변3
~/.bashrc
설정되어 있지 않은 경우 PROMPT_COMMAND
다음으로 시작할 수 있습니다 xfce4-terminal
.
PROMPT_COMMAND='PS1="> "; unset PROMPT_COMMAND' xfce4-terminal
답변4
한 가지 방법은 현재 BASH PID($$를 통해 얻음)로 시작한 다음 PPID를 얻는 등 bash 셸의 조상이 되는 터미널을 찾을 때까지 계속하는 것입니다. 이 정보를 바탕으로 PS를 설정할 수 있습니다.
일반적으로 쉘의 상위는 터미널입니다.
내 시스템의 개념 증명(Debian 7).
$ PARENT_PID=$(ps --pid=$$ -o ppid --no-headers)
$ ps --pid $PARENT_PID -o command --no-headers
gnome-terminal -x /bin/sh -c cd '/home/XXXX/Desktop' && exec $SHELL
따라서 내 시스템에서는 쉘의 부모를 보면 그 쉘이 gnome 터미널에서 실행된다는 것을 알 수 있습니다.
한 줄로 요약하면 다음과 같습니다.
$ ps --pid $(ps --pid=$$ -o ppid --no-headers) -o command --no-headers
gnome-terminal -x /bin/sh -c cd '/home/XXXX/Desktop' && exec $SHELL
나는이 줄을 내.bashrc
MY_TERMINAL=$(ps --pid $(ps --pid=$$ -o ppid --no-headers) -o command --no-headers | cut -f 1 -d " ")
MY_TERMINAL
포함되어 있음 을 확인했습니다 gnome-terminal
.
그러니 괜찮을 것입니다.