Вы не хотите, как вы выразились:
обернуть ... мое сообщение цитатой
(что вы действительно делаете) . Вместо этого вы хотите защитить свое сообщение от того, чтобы bash рассматривал его как список слов . Для этого вам нужны кавычки, но в другой позиции:
remote='
cd express-demo-nonbare;
git pull origin master;
'
echo "Process for updating Git begin"
git add .
read -p "Message for this commit: " comment
echo "$comment"
git commit --message="$comment"
git push backup master
Я также удалил все второстепенные точки с запятой (bash обрабатывает конец строки как конец команды, если только что-то вроде незакрытой круглой скобки или фигурной скобки предотвращает это).
Мне не ясно, каково ваше намерение установить переменную remote
в буквальную строку новая строка c d пробел e x ... ; новая строка , особенно поскольку $remote
не встречается позже в сценарии. Обратите внимание, однако, что, поскольку эта строка включает пробел, расширение ее за пределы кавычек, как в $remote
(против "$remote"
, которое расширяет ее внутри кавычек), может запускать дальнейшие действия оболочки. Например:
foo='this; that'
wc $foo
программа wc
попытается открыть файлы с именами this;
и that
, разделив $foo
в пробелах на отдельные слова, которые затем передаются в wc
. Это разделение фактически основано на $IFS
:
IFS=+
foo='this+that'
wc $foo
пытается открыть файлы с именами this
и that
. Восстановление нормального значения IFS:
wc $foo
пытается открыть один файл с именем this+that
.
(я иногда использую wc
в качестве программы, чтобы показать, каковы были фактические аргументы , поскольку он пытается открыть каждый из них как имя файла и выдает фактическое имя файла в любом последующем сообщении об ошибке или количестве.)
Аналогично, если раскрытие переменной производит метасимволы глобуса оболочки, они будут будет оцениваться после расширения:
foo='*'
wc $foo
будет пытаться открыть и прочитать каждый файл и каталог в текущем каталоге. Опять же, двойные кавычки защитят от этого:
wc "$foo"
будет пытаться открыть и прочитать только один файл с именем *
.