我需要要求用户提供一个路径名(这里有一个空格)来启动查找命令:
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
我是不是做错了什么?无法弄清楚为什么第二个命令不会运行,因为它应该将其视为:
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
因此您不需要以任何方式转义它)