read -d '' PATCH_OS <<EOF

//PATCH//TEXT//

EOF

patch -b < ${PATCH_OS}

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

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

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

1 ответ1

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .