在sh文件中嵌入补丁文件

时间:2017-02-20 20:51:16

标签: patch

我试图创建一个内部运行补丁的.sh文件。因此,我不想在脚本旁边运行补丁文件的patch -p0,而是希望将补丁嵌入其中。

我尝试了下面的

patch -p0 <<EOF
Index: app/code/Magento/CustomerImportExport/Model/Import/Customer.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- app/code/Magento/CustomerImportExport/Model/Import/Customer.php     (date 1487543450000)
+++ app/code/Magento/CustomerImportExport/Model/Import/Customer.php     (revision )
@@ -371,6 +371,7 @@
         // attribute values
         foreach (array_intersect_key($rowData, $this->_attributes) as $attributeCode => $value) {
             if ($newCustomer && !strlen($value)) {
+                               $entityRow[$attributeCode] = $value;
                 continue;
             }

EOF

但它没有用。但是,当我在原始补丁文件上运行patch -p0时,它没有任何问题。有什么线索可能是错的?

谢谢,

1 个答案:

答案 0 :(得分:3)

请尝试以下建议:Re: [bug-patch] patch 2.6.1 with here document in a shell script

  

将上述内容更改为此内容,效果会更好:

     

patch -p0&lt;&lt;'EOF'

     

如果没有引号,下面的脚本会在这里的脚本中扩展像$ @这样的结构。