Я делаю передачу файлов с помощью rsync с сервера, где у файлов/каталогов есть пространство в их имени. Использование апострофа, я убегаю пространство, и это работаетbash: rsync escape single quote
rsync -svaz --progress '[email protected]:/folder with space' '/downloads'
Я пытаюсь написать Баш скрипт для таких же, но без успеха, согласно this нити, можно избежать одного котировки помести его под двойная кавычка. Следующие выглядит хорошо
#!/bin/bash
read -e -p "source path: " SOURCEPATH
read -e -p "destination path: " DESPATH
echo "rsync -svaz --progress" "'""$SOURCEPATH""'" "'""$DESPATH""'"
Но это не работает
#!/bin/bash
read -e -p "source path: " SOURCEPATH
read -e -p "destination path: " DESPATH
rsync -svaz --progress "'""$SOURCEPATH""'" "'""$DESPATH""'"
Одиночные кавычки в этой исходной командной строке просто цитируют пробелы. Двойные кавычки вокруг переменных разложений делают то же самое. Вам не нужны оба. Просто забудьте одинарные кавычки. (Также, чтобы получить то, что вы пытались, вам просто нужно было «$ SOURCEPATH» «' 'не' ''" "$ SOURCEPATH" "'" 'i.e, нет необходимости вбрасывать и выходить из двойных кавычек, подобных этому.) –