2014-12-03 2 views
-2

Пытается назначить ввод от пользователя переменной SRC.bash read string formatting

В текстовом редакторе: чтения -p «5. Перетащите папку, содержащую ваше короткое имя в это окно Нажмите„возвращение“После удаления папки здесь:.» SRC CD $ SRC

В терминал: /Volumes/Macintosh\ HD\ 1/Users/fakeperson (этот путь быть назначен SRC)

Однако, когда я эхо $ SRC, я получаю это: /Volumes/Macintosh HD 1/Users/fakeperson (без обратной косой черты после HD)

, и я не могу

cd /Volumes/Macintosh HD 1/Users/fakeperson 

В конце концов, я хочу это одна линия для работы

rsync -raz --progress $SRC $HOME 

Любая помощь?

ответ

1

обратный слеш берется как экранирующий символ для пространства .. если вы хотите обратную косую черту после HD вам нужно, чтобы избежать обратной косой черты, используя другой backslash так что вам нужно ввести

/Volumes/Macintosh\ HD\\\ 1/Users/fakeperson

присвоить SRC, как

/Volumes/Macintosh HD\ 1/Users/fakeperson

Это всегда хорошая идея, чтобы дать строку ввода в double quotes, который имеет пробелы и S характерные символы, такие как \, а не экранирование их. Вы можете просто ввести ввод как:

"/Volumes/Macintosh HD\ 1/Users/fakeperson" 
+0

это очень близко. Тем не менее, я пытаюсь иметь минимальное взаимодействие после назначения пути файла к SRC. Любая команда автоматически добавлять обратную косую черту? – bskillets

+0

@bskillets ok .. Я понял, что нет никакой команды, чтобы автоматически назначать обратные косые черты ... поместите переменную '$ SRC' в двойные кавычки, где она используется в нашем скрипте ..' cd '$ src " это решит большую часть вашей проблемы .. – RBH