read -d '' PATCH_OS <<EOF
//PATCH//TEXT//
EOF
patch -b < ${PATCH_OS}
Это не удается:
./script.sh: line 39: --- //PATCH//TEXT//
(строка 39 - это "patch -b <$ {PATCH_OS}" ")
read -d '' PATCH_OS <<EOF
//PATCH//TEXT//
EOF
patch -b < ${PATCH_OS}
Это не удается:
./script.sh: line 39: --- //PATCH//TEXT//
(строка 39 - это "patch -b <$ {PATCH_OS}" ")
Это не так, как перенаправления работают. <
перенаправляет ввод из файла ; если вы указываете переменную, то ее содержимое принимается за имя файла. Вы бы искали <<<
вместо этого. И не забывайте помещать кавычки вокруг "$variable"
, иначе bash разделит свое значение на пробелы.
(За исключением вашего примера сценария переменная бесполезна. Просто используйте patch -b <<EOF
напрямую.)