양방향 언어로 fzf를 사용하는 방법은 무엇입니까?

양방향 언어로 fzf를 사용하는 방법은 무엇입니까?

저는 bash 스크립트를 사용하여 파일과 디렉터리를 찾고 여는 검색 유틸리티를 제공하고 있습니다.

스크립트는 다음과 같습니다.

#!/bin/bash
lxterminal -e "bicon.bin locate /home /run/media |fzf >| ~/.mylocateData"
              # ^ this the problematic part
sleep 0.4
while [[ "$(pidof fzf)" != "" ]] ; do
    sleep 0.4
done
file="$(cat ~/.mylocateData)"
if [[ -z "$file" ]] ; then exit ; fi
mimetype=$(file  --dereference --brief --mime-type  "$file" )
case "$mimetype" in
      inode/directory)            lxterminal -e bicon.bin ranger "$file" ;;
      image/*)                    feh "$file" & disown ;;
      text/* | */xml)             lxterminal -e vim "$file"  ;;
      video/* | audio/*)          mpv --really-quiet --loop "$file" & disown ;;
     application/pdf)             okular "$file" & disown ;;
     application/octet-stream)
                                 if [[ "${file#*.}" == "MP3" ]]
                                    then
                                         mpv --really-quiet --loop "$file" & disown
                                 fi
                                 ;;
     *)                            lxterminal -e bicon.bin ranger --selectfile="$file" ;;
esac

첫 번째 명령을 실행하면thancombinfzf가 포함된 텍스트는 예상대로 아랍어 파일 이름을 처리하지만 다음 위치에 저장됩니다..mylocateData어떤 이유로 파일이 손상되어 열 수 없습니다. 확인하기 위해 디버깅을 시도했습니다 ls "$(cat .mylocateData).

하지만 스크립트 없이 스크립트를 실행하면thancombinfzf는 검색을 표시하지만 아랍어 문자를 왼쪽에서 오른쪽으로(보기 흉한 방식으로) 표시하지만 파일 이름은 어쨌든 올바르게 저장되어 열 수 있습니다.

내 질문is: 이 두 가지 목표를 어떻게 달성할 수 있나요? 다른 방법으로 파일을 읽는 것이 문제라면 어떻게 될까요 cat? 아니면 fzf를 사용합니까?

추신: 저는 dmenu, rofi...etc를 사용하는 데 관심이 없습니다. fzf 작동 방식이 마음에 들고 이를 내 Arch i3wm 데스크탑에서 사용하고 싶습니다.

관련 정보