
다음과 같이 선택 항목을 클립보드 fzf
에 저장하는 대화형 bash 스크립트가 있습니다 .X
#!/bin/bash
cat /path/to/file.txt | fzf | xclip -sel p -sel s -sel c
exit 0
텍스트 파일에는 다음과 같은 몇 줄이 포함되어 있습니다.
one
two
three
four
five
터미널 에뮬레이터에서 스크립트를 수동으로 실행하면 파이프 내용이 영구적으로 저장되며 터미널 에뮬레이터를 닫은 후에도 붙여넣을 수 있습니다 bash path/to/script.sh
.xclip
하지만 요청 시 사용할 수 있도록 DE의 키보드 단축키에 바인딩하고 싶기 때문에 터미널 에뮬레이터 명령과 함께 사용해야 합니다. 예: mate-terminal -x bash /path/to/script.sh
. 잘 열리지만 선택 후 종료되면 xclip
콘텐츠가 손실되어 더 이상 붙여넣을 수 없습니다. 스크립트 종료를 지연하면 sleep 5
터미널이 아직 열려 있는 동안 파이프 내용 붙여넣기가 작동하지만 일단 종료되면 손실됩니다.
X
터미널 에뮬레이터가 닫힌 후에도 클립보드의 내용이 유지되도록 하는 방법이 필요합니다 .
답변1
이 -loops 0
옵션을 사용합니다(기본값). 다른 프로세스가 X 선택의 소유권을 요청할 때까지 X 선택을 무기한 사용할 수 있도록 합니다.
그러나 프로그램을 키보드 단축키에 바인딩하면 xclip 데몬이 반환된 후 종료됩니다. 터미널에서 프로그램을 시작할 때는 이 동작이 발생하지 않습니다. 이 -verbose
옵션을 사용하면 프로그램이 전경에서 실행되어 터미널도 변경되지 않은 상태로 유지됩니다.
xclip
데몬을 계속 실행하고 터미널 창을 표시하지 않으 려면 이 nohup
프로그램을 사용하도록 선택할 수 있습니다. init 프로세스를 PPID(예: systemd)로 사용하여 명령을 실행합니다.
#!/bin/bash
cat /path/to/file.txt | fzf | nohup xclip -loops 0 -sel p -sel s -sel c