사용자 정의 프롬프트 문자열을 사용하여 zsh를 통해 새 터미널 인스턴스를 시작합니다.

사용자 정의 프롬프트 문자열을 사용하여 zsh를 통해 새 터미널 인스턴스를 시작합니다.

터미널 에뮬레이터(바람직하게는 gnome-terminal)를 시작하고 사용자 정의 프롬프트 문자열을 사용하여 내부적으로 대화형 zsh를 실행할 수 있기를 원합니다. 기본 프롬프트 문자열을 가장 자주 사용하고 가끔씩만 사용자 정의 zsh 프롬프트 문자열로 터미널을 시작하고 싶기 때문에 수정하고 싶지 않습니다 .zshrc(더 구체적으로 말하면 오른쪽 프롬프트에 시간이 표시되기를 원합니다). .

터미널 창이 이미 열려 있는 경우 다음을 실행하여 이 문제를 해결할 수 있습니다.

export RPS1=%T zsh

하지만 새 터미널 인스턴스를 시작할 때 작동하도록 하는 구문을 알아낼 수 없습니다. 각 명령 아래의 오류 메시지와 함께 시도한 작업은 다음과 같습니다.

gnome-terminal -- export RPS1=%T zsh
# Error: Failed to execute child process “export” (No such file or directory)
gnome-terminal -- sh -c export RPS1=%T zsh
# Prints all the options, like with `set`
# and then exits with "The child process
# exited normally with status 0".
gnome-terminal -- sh -c "export RPS1=%T zsh"
# The child process exited normally with status 0.
gnome-terminal -- sh -c "export RPS1=%T; zsh"
# This start the terminal with zsh, but the RSP1 is not changed

맞춤 rc 파일을 읽는 것을 고려했는데,이 답변처럼요, 그러나 이를 사용하지 않고 zsh에서 이를 수행할 수 있는 방법은 없는 것 같습니다 source. 이로 인해 위와 비슷한 문제가 발생했습니다.

답변1

에서는 다음과 같이 설정하여 재정의를 zshrc허용합니다 .RPS1

# If rps1 is not set, use a default value
RPS1=${rps1-"Your usual RPROMPT"}
  • RPS1이제 환경에서 설정하여 다른 명령으로 명령을 실행할 수 있습니다 rps1. 예를 들면 다음과 같습니다.
rps1=%T gnome-terminal
  • 매개변수 확장을 통해 null로 설정할 ${param-word}수 있습니다 .RPS1
rps1= gnome-terminal

셸에서 사용되는 매개변수(예 RPS1: )는 내보낼 필요가 없습니다. 이는 쉘을 설정하는 데 사용되므로 rc 파일에서 한 번 설정해야 합니다.

프로그램(예: gnome-terminal)이 해당 환경에서 시작되면 rps1해당 프로그램에서 시작된 모든 후속 프로그램이 rps1해당 환경에서 해당 프로그램을 볼 수 있습니다. 이를 방지하려면 다음 중 하나를 추가할 수 있습니다 zshrc. unset rps1(게시물 설정에 사용 RPS1) 또는 typeset +x rps1.


그런데, 다음은 두 개의 쉘 변수를 내보냅니다.

export RPS1=%T zsh
  • 위에는 &가 환경에 생성되도록 하는 export두 개의 매개변수가 있습니다.RPS1=%Tzsh=''
  • RPS1현재 쉘에서 설정하려면 다음을 수행하십시오.
RPS1=%T

답변2

셸을 실행하면 셸이 /~.zshrc프롬프트를 재정의하는 를 처리합니다.

한 가지 옵션은 다음과 같습니다 ~/.zshrc.

MY_PROMPT="${MY_PROMPT:-"> "}" # Set the value to "> " if it isn't currently set
RPS1="${MY_PROMPT}"

그런 다음 쉘을 시작하면 다음을 얻을 수 있습니다.

> 
> MY_PROMPT="my new prompt > " zsh
my new prompt >

비표준 변수(여기 MY_PROMPT)를 선택하는 것은 쉘이 ~/.zshrc.

관련 정보