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
내가 뭐 잘못 했어요? 두 번째 명령이 다음과 같이 처리되어야 하기 때문에 실행되지 않는 이유를 알 수 없습니다.
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
어떤 식으로든 이스케이프할 필요가 없습니다).