To av de viktigste verktøyene i programvareutvikling er patch y diff. Det er ikke et mysterium hvordan de fungerer, men jeg tror dette blir et interessant innlegg. 🙂
Begge er veldig kraftige, og dette er akkurat som å berøre overflaten, de har flere verktøy og andre funksjoner. I utgangspunktet med disse to verktøyene kan vi lage versjonskontroll,
diff
Vi refererer til sammenligning, den sammenligner en "original" fil med den "nye", og informerer oss om forskjellene som eksisterer mellom dem. Dette verktøyet lar oss også lage .patch-filer som vi bruker til å lage oppdateringer for programmene våre.
patch
Det er kommandoen som vi bokstavelig talt "lapper" vår originale fil ved å legge til og / eller fjerne linjer i henhold til instruksjonene i .patch-filen.
Det er også vimdiff, som er et visuelt verktøy for å bruke oppdateringer uten behov for en .patch-fil, siden den sammenligner "original" og "new", og på samme fil er det mulig å redigere linje for linje eller hele dokumentet. Dette vil jeg ikke forklare, men jeg synes det fortjener en omtale.
Ejemplo
Nå er moroa. Eksempel!
Dette er tilfelle, vi har et flott manus som ber om navn og alder, hvis du er over 18 år, forteller den deg at du kan stemme, ellers forteller det deg at du ikke kan stemme.
original.sh
#! / bin / bash echo "Skriv inn navnet ditt:" read name echo "Angi alderen din:" read age if [[18 -lt $ age]] og ekko "Hello $ name, du er $ gammel og du kan stemme!" ellers ekko "Hallo $ navn, du er $ gammel og du kan ikke stemme ..." fi
Ferdig, her er det løpende skriptet:
Så som gode brukere vi er, deler vi skriptet vårt med en venn :), men vi får en melding om at det har en feil, at når det er 18, står det at det ikke kan stemme når det skal.
Nå begynner vi å rette den lille feilen og gjøre noen modifikasjoner ...
new.sh
#! / bin / bash maxAge = 18 echo "Skriv inn navnet ditt:"; les navnet ekko "Skriv din alder:"; les alder hvis [[$ maxAge -le $ age]]; så ekko "Hallo $ navn, du er $ år gammel og du kan stemme!" ellers ekko "Hallo $ navn, du er $ år gammel og du kan ikke stemme ..." fi exit 0
Anta at manuset er veldig tungt. Så for ikke å sende hele skriptet igjen, oppretter vi en .patch 😀
$ diff -u original.sh new.sh> patch.patch
Og nå har vi vår lapp. Her er en oversikt over Vim:
Og for å bruke den bruker vi ganske enkelt .patch-filen i skriptet som skal patches. Her kalles originalAmigo.sh, som er en eksakt kopi av skriptet original.sh
$ patch originalFriend.sh <patch.patch
Og dette etterlater oss vår fil originalAmigo.sh Så:
Som du kan se er det veldig enkelt å få forskjellene og bruke lappene. Det hele kommer fra meg.
Hilsen folk, vi vil lese neste fredag.
Flott, tusen takk 🙂
Hvis du vil ha litt farge, kan du bruke colordiff ^ __ ^
Nå forstår jeg hvordan oppdateringer fungerer i Debian.
Hei, jeg vet at systemvarsler kan vises med varsel-send fra konsollen, men det jeg ønsker å gjøre er å kunne planlegge når eller hvor lenge jeg skal varsle meg, er det noen måte å gjøre det? Jeg bruker elementær, som er basert på Ubuntu 12.04, i tilfelle det hjelper, takk
Vel, det kan gjøres ved hjelp av systemet cron 😉
og hvordan kan det gjøres? Jeg har nettopp lært å bruke kommandoen notify-send
Du kan søke etter cron her i bloggen det er mange innlegg om det 🙂
Veldig bra takk!
Jeg bruker alltid dette for å oppdatere kjernen, jeg laster bare ned oppdateringene og bruker kildene, så jeg slipper å laste ned 80 MB hver utgivelse.