私は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:この2つの目標をどのように達成できますか?別の方法でファイルを読むことが問題であればどうなりますかcat
?それともfzfを使用しますか?
PS:私はdmenu、rofi ... etcを使用することに興味がありません。 fzfの仕組みが好きで、これを私のArch i3wmデスクトップで使用したいと思います。