urxvt 및 fzf를 사용하여 간단한 애플리케이션 실행 프로그램 만들기

urxvt 및 fzf를 사용하여 간단한 애플리케이션 실행 프로그램 만들기

나는 단축키에 바인딩하기 위해 터미널과 fzf가 있는 간단한 프로그램 실행 프로그램을 함께 맞추려고 노력해 왔지만 프로그램이 시작된 후 하위 프로세스를 종료하지 않고는 터미널 창을 닫을 수 없습니다. 저는 쉘의 초보자이므로 중요한 단계를 놓쳤을 수 있습니다.

내가 지금까지 시도한 것 :

urxvtc -name menu -e bash -c 'compgen -c | sort -u | fzf | sh

특별한 규칙에 따라 생성될 수 있도록 menu라는 이름이 붙었습니다. 쉘(zsh)이 compgen을 인식하지 못했기 때문에 -e bash를 수행해야 했습니다.

한 가지 불일치가 제안되었습니다.

urxvt -name menu -e bash -c 'cmd=$(compgen -c | sort -u | fzf); setsid $cmd'

이렇게 하면 시작된 프로그램에서 창이 분리되지만 fzf가 평가되어 stdout으로 출력될 때 터미널 창을 자동으로 닫는 방법을 찾을 수 없습니다.

답변1

이것이 정확히 여러분이 찾고 있는 것인지는 확실하지 않지만, setid(-f)에 포크 매개변수를 추가하는 것은 비터미널 명령에 매우 유용한 것 같습니다.

urxvt -name menu -e bash -c 'cmd=$(compgen -c | sort -u | fzf); setsid -f $cmd'

관련 정보