Я пытаюсь вставить патч в скрипт bash - не могу получить патч для чтения патча из переменной

read -d '' PATCH_OS <<EOF

//PATCH//TEXT//

EOF

patch -b < ${PATCH_OS}

Это не удается:

./script.sh: line 39: --- //PATCH//TEXT//

(строка 39 - это "patch -b <$ {PATCH_OS}" ")

1 ответ

Решение

Это не так, как перенаправления работают. < перенаправляет ввод из файла; если вы указываете переменную, то ее содержимое принимается за имя файла. Вы бы искали <<< вместо. И не забудьте поставить цитаты вокруг "$variable"иначе bash разделит свое значение на пробелы.

(За исключением вашего примера сценария переменная бесполезна. Просто используйте patch -b <<EOF непосредственно.)

Другие вопросы по тегам