2015-03-22 8 views
0

Я делаю небольшую систему управления версиями в оболочке для школы. Учитель говорит нам использовать seq, но я не нашел, как его использовать. Я:Применить последовательный патч к файлу в сценарии оболочки

patch $2 .version/$2.{`seq -s"," 2 $3`} 

, где $ 2 - это файл, который мне нужно запланировать, .version/$ 2. это патч, который мне нужно применить, от 2 ($ 2,2) до указанного аргумента ($ 2. $ 3). Это возвращение:

патч: **** Не удается открыть файл заплатки .version/test.sh {2,3}. Нет такой файл или каталог

Так оно кажется seq хорошо, но патч не интерпретировал его. test.sh.2 и test.sh.3.

Есть ли способ сделать это так или я в неправильном направлении?

Извините за английский, это не мой родной язык.

+0

Брейк-расширение происходит первым, вы не можете использовать его в результате подстановки команды. –

ответ

0

В соответствии со своей страницей руководства патч ожидает один патч-файл за раз. Вы можете повторить свой пример, как это:

for n in `seq 2 $3` ; do patch $2 .version/$2.$n; done 

Причина вариант -s неясна, так что я удалил его.

+0

«-s», «должен был использовать в качестве разделителя между числом, чтобы получить рабочий массив, например, когда вы делаете что-то вроде touch .version/{1,2,3}. Но с вашей версией нет никакой необходимости в этом. Спасибо за ваш ответ, я буду работать таким образом. – marc3825