FZF 터미널을 프로그램 실행기로 사용하는 방법

FZF 터미널을 프로그램 실행기로 사용하는 방법

나는 아이디어가. 터미널을 프로그램으로 사용하여 프로그램을 실행할 수 있나요?

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. 이상적으로는 창/세션 관리자에게 명령을 실행하라고 지시하는 것이 좋습니다.

관련 정보