2017-02-20 4 views
0

Я пытаюсь создать файл .sh, который внутренне запускает патч. Поэтому вместо запуска файла patch -p0 файла исправления, смежного с скриптом, я хотел бы, чтобы патч был внедрен внутри.Вставить файл патча в sh файл

Я попытался ниже

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 в исходном файле исправления, он работает без проблем. Какие-нибудь подсказки, что может быть неправильным?

Спасибо,

ответ

0

Попробуйте это предложение от: Re: [bug-patch] patch 2.6.1 with here document in a shell script

Измените выше этого, и он будет работать лучше:

патч -p0 < < 'EOF'

Без кавычек ваш скрипт ниже расширяет конструкции, такие как $ @ в скрипте здесь.

+0

Вы, сэр, рок! :) –

Смежные вопросы