Два основных инструмента при разработке программного обеспечения: Патчи y Разница. Не секрет, как они работают, но думаю, это будет интересный пост. 🙂
Оба очень мощные, и это все равно что касаться поверхности, у них больше утилит и других функций. В основном с помощью этих двух инструментов мы можем создать контроль версий,
Разница
Мы ссылаемся на сравнение, оно сравнивает «исходный» файл с «новым» и сообщает нам о различиях, которые существуют между ними. Этот инструмент также позволяет нам создавать файлы .patch, которые мы используем для создания исправлений для наших программ.
Патчи
Это команда, с помощью которой мы буквально «исправляем» наш исходный файл, добавляя и / или удаляя строки в соответствии с инструкциями, содержащимися в файле .patch.
Существует также вимдифф, который представляет собой визуальный инструмент для применения исправлений без необходимости использования файла .patch, поскольку он сравнивает «исходный» и «новый», и в одном и том же файле можно редактировать построчно или весь документ. Я не буду это объяснять, но думаю, что это заслуживает упоминания.
Пример
Теперь самое интересное. Пример!
Это тот случай, у нас есть отличный сценарий, который запрашивает ваше имя и ваш возраст, если вам больше 18 лет, он сообщает вам, что вы можете голосовать, в противном случае он сообщает, что вы не можете голосовать.
оригинал.ш
#! / bin / bash echo "Введите свое имя:" прочтите имя echo "Введите свой возраст:" прочтите возраст, если [[18 -lt $ age]], затем echo "Привет, $ name, вам $ стар и вы можете голосовать!" else echo "Привет, $ name, ты $ старый и не можешь голосовать ..." fi
Готово, вот запущенный скрипт:
Итак, как хорошие пользователи, мы делимся нашим скриптом с другом :), но мы получаем сообщение о том, что у него есть недостаток, что когда ему 18, он говорит, что он не может голосовать, когда должен.
Теперь приступим к исправлению небольшой ошибки и внесем несколько изменений ...
new.sh
#! / bin / bash maxAge = 18 echo "Введите свое имя:"; прочтите имя echo "Напишите свой возраст:"; прочитать возраст, если [[$ maxAge -le $ age]]; затем эхо "Привет, $ name, тебе $ лет, и ты можешь голосовать!" else echo "Привет, $ name, ты $ старый, и ты не можешь голосовать ..." fi exit 0
Предположим, сценарий очень тяжелый. Итак, чтобы не пересылать заново весь скрипт, создаем .patch 😀
$ diff -u original.sh new.sh> patch.patch
И теперь у нас есть наш патч. Здесь вид в напор:
И чтобы применить это, мы просто используем файл .patch в скрипте, который нужно исправить. Здесь называется оригинальныйAmigo.sh, который является точной копией скрипта оригинал.ш
$ patch originalFriend.sh <patch.patch
И это оставляет нам наш файл оригинальныйAmigo.sh Так:
Как видите, очень легко получить различия и применить патчи. Это все от меня.
Привет народ, будем читать в следующую пятницу.
Отлично, большое спасибо
Если вам нужен цвет, используйте colordiff ^ __ ^
Теперь я понимаю, как работают патчи в Debian.
Здравствуйте, я знаю, что системные уведомления могут отображаться с помощью notify-send с консоли, но я хотел бы иметь возможность запланировать, в какое время и как долго показывать мне уведомление, есть ли способ сделать это? Я использую elementary, который основан на Ubuntu 12.04, если это поможет, спасибо
Что ж, это можно сделать с помощью системы cron 😉
и как это можно сделать? Я едва научился использовать команду notify-send
Вы можете поискать cron здесь, в блоге, об этом много сообщений
Очень хорошо, спасибо!
Я всегда использую это для обновления ядра, я загружаю только патчи и применяю их к исходным текстам, поэтому мне не нужно загружать 80 МБ каждого выпуска.