터미널 제목의 이름을 바꾸고 응용 프로그램을 실행하는 명령을 만들려고 이 명령을 .bash_aliases 파일에 추가했습니다. 내가 사용하고 있는 이름 바꾸기 명령은 다음과 같습니다. PS1='\[\e]0;test\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
단독으로 사용하고 응용 프로그램을 실행한 후 예상대로 작동합니다. 하지만 다음과 같은 명령을 사용하면:
alias rpcs3="PS1='\[\e]0;test\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' && ./rpcs3/rpcs3-v0.0.25-14385-b639f3c8_linux64.AppImage"
후자의 명령을 사용하면 다음 예와 같이 애플리케이션이 닫힌 후에만 터미널 제목이 변경됩니다.
신청서를 닫기 전에
신청서를 닫은 후
어떻게 해야 합니까?
답변1
쉘 프롬프트는 프로그램이 완료될 때까지 기다리기 때문에 이 별칭은 작동하지 않습니다.
이 문제에 대한 해결책은 먼저 명령을 호출 ./rpcs3/rpcs3-v0.0.25-14385-b639f3c8_linux64.AppImage
하고 백그라운드에서 실행하는 것입니다.
alias rpcs3="./rpcs3/rpcs3-v0.0.25-14385-b639f3c8_linux64.AppImage & PS1='\[\e]0;test\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '"
명령이 백그라운드에서 실행된다는 점을 고려하여, 키를 누르면 Enter쉘 프롬프트로 돌아갑니다(제목은 미리 설정되어 있으므로 더 이상 문제가 되지 않습니다). 포그라운드 프로세스로 돌아가려면 ./rpcs3/rpcs3-v0.0.25-14385-b639f3c8_linux64.AppImage
다음 명령을 사용해야 합니다 fg
. 현재 셸의 백그라운드에서 어떤 작업이 실행되고 있는지 확인하려면 내장 명령/shell 을 사용할 수 있습니다 jobs
. 예를 들어:
$> jobs -l
#Output
[1] Running gnome-calculator &
[2]- Running gnome-calculator &
[3]+ Running nautilus &
포그라운드 프로세스로 돌아가려면 다음을 nautilus
사용할 수 있습니다.
fg 3
#You can also specify the `command name` instead of the ID.
귀하의 경우에는 백그라운드에 프로세스가 하나만 있을 것입니다( ./rpcs3/rpcs3-v0.0.25-14385-b639f3c8_linux64.AppImage
). 따라서 간단하게 fg 1
.
답변2
제목을 변경하기 위해 힌트를 사용하려고 합니다. 이는 응용 프로그램이 종료될 때만 제목이 변경된다는 의미입니다. 더 나은 접근 방식은 스크립트에서 제목을 직접 변경하는 것입니다.
#!/bin/sh
title='this is a test'
base='/PATH/TO/THE/ABSOLUTE/LOCATION/OF/rpcs3' # Fixme
[ -n "$TERM" ] && printf "\033]0;%s\007" "$title"
exec "$base/rpcs3-v0.0.25-14385-b639f3c8_linux64.AppImage"
이 스크립트를 경로(보통 )의 어딘가에 넣고 $HOME/bin
실행 /usr/local/bin
가능하게 만듭니다. 그런 다음 다른 프로그램처럼 호출할 수 있습니다. 예를 들어 이 파일을 호출하면 dorpcs3
다음과 같이 실행됩니다.
애플리케이션이 종료된 후 헤더가 재설정되지는 않지만 기본 쉘 프롬프트가 이 작업을 수행합니다.