Сценарии – Папки с пробелами

Я пытаюсь написать сценарий, достаточно прочный для работы с пробелами.

В настоящее время он находится в цикле for, но проблема, с которой я столкнулась, это папки с пробелами в имени.

ASOURCE="Home Photos 2012 camcorder" #example filename if [ -d "$(echo $ASOURCE)" ] # If directory exists then #command else echo "File does not exist: " $1 #Error echo "DIR :" $(echo $ASOURCE | sed 's/\ /\\ /g') fi 

Он не работает при проверке. Я пробовал избегать пробелов, но безрезультатно

Вы всегда должны (*) указывать свои переменные, особенно если они содержат произвольный пользовательский ввод.

В этом случае, если вы используете скрипт bash , используйте двойные скобки, поэтому вам не нужно указывать (bash является таким умным) и использовать printf "%q" чтобы получить bash, чтобы избежать того, что должно быть экранировано:

 ASOURCE="Home Photos 2012 camcorder" #example filename if [[ -d $ASOURCE ]]; then # directory exists : else # Note how these vars are quoted: echo "File does not exist: $1" printf "DIR : %q\n" "$ASOURCE" fi 

(*), за исключением случаев, когда вы точно знаете , когда не хотите их процитировать.