2017-02-01 12 views
0

Прежде чем я начну, пожалуйста, не откусывайте мою голову. Я знаю, что этот вопрос задавался много раз здесь и на других форумах, но я не могу получить этот простой сценарий оболочки работать.Mac os shell script cd папка с пробелами не работает

Это мой сценарий:

#!/bin/bash 

DEST=“/Volumes/Ext\ 1TB/Google\ Drive/Backup\ Ralph/mac” 

echo dest is $DEST 
cd $DEST 

и это мой выход:

bash -x gdrive.sh 
+ DEST='“/Volumes/Ext 1TB/Google Drive/Backup Ralph/mac”' 
+ echo dest is $'?\200\234/Volumes/Ext' 1TB/Google Drive/Backup $'Ralph/mac?\200\235' 
dest is “/Volumes/Ext 1TB/Google Drive/Backup Ralph/mac” 
+ cd $'?\200\234/Volumes/Ext' 1TB/Google Drive/Backup $'Ralph/mac?\200\235' 
gdrive.sh: line 6: cd: “/Volumes/Ext: No such file or directory 

Я пробовал много комбинаций, как одинарные или двойные кавычки или избежать остроумие обратной косой черты или или двойные кавычки и побег с обратной косой чертой

Если я поставил двойные кавычки вокруг моей переменной, результат выдаст мне некоторые цифры, как вы видите в моем примере.

Кто-нибудь знает, что такое правильное использование и комбинация кавычек экранирования?

Я надеюсь, что кто-то может помочь

С уважением,

Ральф

+2

Двойные кавычки - это не простые двойные кавычки, а специальные символы. Здесь он исправлен: ''/Volumes/Ext \ 1TB/Google \ Drive/Backup \ Ralph/mac "'. Кстати, вам не нужно бежать из встроенных пространств с помощью \, это также очень хорошо работает: '"/Volumes/Ext 1TB/Google Drive/Backup Ralph/mac "' – janos

ответ

2

Вобще:

DEST="/Volumes/Ext 1TB/Google Drive/Backup Ralph/mac" 

cd "$DEST" 

вам нужны кавычки в cd строке в качестве значения $DEST просто вставляется в командную строку и без них, что приводит к 4 аргументам cd:

cd $DEST 

=>

cd /Volumes/Ext 1TB/Google Drive/Backup Ralph/mac 

НТН

P.S. Я предполагаю, что кудрявые цитаты «,» в вашем вопросе - это только автоматическая правильная опечатка, и вы знаете, что используете прямые котировки »,«

+0

Вот и все! он работает с этими фигурными цитатами, не был опечаткой, я редактирую файл bash в текстовом редакторе по умолчанию mac os ... этот текстовый редактор преобразует обычные кавычки в фигурные кавычки. Никогда не думал о кудрявых цитатах. Спасибо CRD. Это не повторится, я установил возвышенный текст 3 сейчас, я буду использовать текстовый редактор для ввода букв с этого момента :-) –