나는 아이디어가. 터미널을 프로그램으로 사용하여 프로그램을 실행할 수 있나요?
dmenu /rofi 대신 FZF를 사용하여 모든 프로그램을 나열하고 선택 항목을 실행한 다음 실행 후 터미널을 닫고 싶습니다.
나는 이것을 시도했지만 작동하지 않습니다.
termite -e run.sh
또는urxvt -e zsh -c run.sh
run.sh
으로 구성되다:
#!/bin/zsh
preexe() { kill -9 $PPID }
exec $(whence -pm '*' | fzf) &!
답변1
exec ... &!
백그라운드에서 시작하고 exec ...
종료합니다.
또한 명령의 stdin/stdout/stderr을 배치할 위치를 결정해야 합니다. 또한 터미널에서 명령을 분리하려고 합니다.
xterm -e zsh -c '
set -o pipefail -o errexit
print -rN -- $commands | fzf --read0 --print0 | IFS= read -rd "" cmd
setsid -- "$cmd" <> /dev/null >&0 2>&0'
$cmd
여기서는 I/O가 에서/로 리디렉션되는 새 세션에서 실행 중입니다 /dev/null
. 이상적으로는 창/세션 관리자에게 명령을 실행하라고 지시하는 것이 좋습니다.