Dwa z podstawowych narzędzi w tworzeniu oprogramowania to Łata y Diff. Nie jest tajemnicą, jak działają, ale myślę, że będzie to ciekawy post. 🙂
Oba są bardzo potężne, a to tylko zarysowanie powierzchni, mają więcej narzędzi i innych funkcji. Zasadniczo za pomocą tych dwóch narzędzi możemy stworzyć kontrolę wersji,
Diff
Mamy na myśli porównanie, które porównuje plik „oryginalny” z „nowym” i informuje nas o różnicach, jakie istnieją między nimi. Narzędzie to pozwala nam również tworzyć pliki .patch, których używamy do tworzenia łatek dla naszych programów.
Łata
Jest to polecenie, za pomocą którego dosłownie „łatamy” nasz oryginalny plik, dodając i/lub usuwając linie zgodnie z instrukcjami zawartymi w pliku .patch
Istnieje również vimdiff, które jest wizualnym narzędziem do stosowania poprawek bez potrzeby posiadania pliku .patch, ponieważ porównuje „oryginał” z „nowym” i na tym samym pliku można edytować linia po linii lub cały dokument. Nie będę tego wyjaśniał, ale myślę, że warto o tym wspomnieć.
Przykład
Teraz zabawna część. Przykład!
Tak właśnie jest, mamy świetny skrypt, który pyta o Twoje imię i wiek, jeśli masz ukończone 18 lat, informuje Cię, że możesz głosować, w przeciwnym razie informuje Cię, że nie możesz głosować.
oryginał.sh
#!/bin/bash echo "Wpisz swoje imię: " read name echo "Wpisz swój wiek: " przeczytaj wiek, jeśli [[ 18 -lt $wiek ]], a następnie echo "Witaj $imię, masz $wiek i możesz głosować! " else echo "Witaj $name, jesteś $stary i nie możesz głosować..." fi
Gotowe, oto działający skrypt:
Jako że jesteśmy dobrymi użytkownikami, udostępniliśmy nasz skrypt znajomemu :), ale otrzymaliśmy wiadomość, że ma on wadę, że gdy ma 18 lat, oznacza to, że nie może głosować, kiedy powinien.
Teraz zaczynamy poprawiać mały błąd i wprowadzać kilka modyfikacji...
nowy.sh
#!/bin/bash maxAge=18 echo "Wpisz swoje imię: "; przeczytaj imię echo "Podaj swój wiek: "; przeczytaj wiek, jeśli [[ $maxAge -le $age ]]; następnie powtórz echo „Witam $name, masz $lat i możesz głosować!” else echo "Witaj $name, masz $lat i nie możesz głosować..." fi exit 0
Załóżmy, że scenariusz jest bardzo ciężki. Aby więc uniknąć ponownego wysyłania całego skryptu, tworzymy .patch 😀
$ diff -u oryginalny.sh nowy.sh > patch.patch
A teraz mamy naszą łatkę. Oto widok w Vim:
Aby go zastosować, po prostu używamy pliku .patch w skrypcie, który ma zostać załatany. Tutaj to się nazywa oryginałAmigo.sh, który jest dokładną kopią skryptu oryginał.sh
$ łatka oryginalnyPrzyjaciel.sh < łatka.łatka
I tak zostajemy z naszym plikiem oryginałAmigo.sh Więc:
Jak widać bardzo łatwo jest uzyskać różnice i zastosować łatki. To wszystko ode mnie.
Pozdrawiam ludzi, do zobaczenia w przyszły piątek.
Super, dziękuję bardzo 🙂
Jeśli chcesz trochę koloru, użyj colordiff ^__^
Teraz rozumiem, jak działają łatki w Debianie.
Witam, wiem, że powiadomienia systemowe można wyświetlać za pomocą funkcji powiadamiania-wysyłania z konsoli, ale chciałbym móc zaprogramować, o której godzinie i jak długo będzie mi wyświetlać powiadomienie. Czy jest na to sposób? Używam Elementary opartego na Ubuntu 12.04, na wypadek, gdyby to pomogło, dzięki
No cóż, da się to zrobić za pomocą systemowego crona 😉
i jak można to zrobić? Właśnie nauczyłem się korzystać z polecenia powiadamiania-wysyłania
Crona możesz poszukać tutaj na blogu, jest wiele postów na ten temat 🙂
Bardzo dobrze, dziękuję!
Zawsze używam tego do aktualizacji jądra, pobieram tylko łatki i stosuję się do źródeł, więc nie muszę pobierać 80 MB każdej wersji.