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
直接使用即可。)