Прежде чем я начну, пожалуйста, не откусывайте мою голову. Я знаю, что этот вопрос задавался много раз здесь и на других форумах, но я не могу получить этот простой сценарий оболочки работать.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
Я пробовал много комбинаций, как одинарные или двойные кавычки или избежать остроумие обратной косой черты или или двойные кавычки и побег с обратной косой чертой
Если я поставил двойные кавычки вокруг моей переменной, результат выдаст мне некоторые цифры, как вы видите в моем примере.
Кто-нибудь знает, что такое правильное использование и комбинация кавычек экранирования?
Я надеюсь, что кто-то может помочь
С уважением,
Ральф
Двойные кавычки - это не простые двойные кавычки, а специальные символы. Здесь он исправлен: ''/Volumes/Ext \ 1TB/Google \ Drive/Backup \ Ralph/mac "'. Кстати, вам не нужно бежать из встроенных пространств с помощью \, это также очень хорошо работает: '"/Volumes/Ext 1TB/Google Drive/Backup Ralph/mac "' – janos