findコマンドを開始するには、ユーザーにパス名(ここにスペースがある)を尋ねる必要があります。
read -r -e -p "Folder:" folder
Folder :/mnt/My\ folderX/
echo $folder
以下を提供します。
My\ folderX/
しかし..
find $folder | sort -rn
以下を提供します。
find: /mnt/My\: No such file or directory
find: folderX/: No such file or directory
そして
find "$folder" | sort -rn
以下を提供します。
find: /mnt/My\ folderX/: No such file or directory
私は何が間違っていましたか? 2番目のコマンドを次のように処理する必要があるため、実行されない理由はわかりません。
find /mnt/My\ folderX/ | sort -rn
完璧に動作します。
非常にありがとう
答え1
Withを使用するとエスケープ文字になら-r
read
ないので、theを入力したり使用したりしないでください。\
\
-r
したがって、次のことを試してください。
read -rep "Folder: " folder
find "$folder" | sort -rn
/mnt/My folderX
脱出口なしで入る
または
read -ep "Folder: " folder
find "$folder" | sort -rn
そして、入力します/mnt/My\ folderX
(または/mnt/My folderX
エスケープせずに - 行全体を読み取るので、folder
何らかの方法でエスケープする必要はありません)。