טרמינל שישי: תיקון ודיף

שניים מהכלים החיוניים בפיתוח תוכנה הם תיקון y הבדל. זו לא תעלומה איך הם עובדים, אבל אני חושב שזה יהיה פוסט מעניין. 🙂

שניהם חזקים מאוד, וזה ממש כמו לגעת במשטח, יש להם יותר שירותים ופונקציות אחרות. בעיקרון בעזרת שני הכלים הללו אנו יכולים ליצור בקרת גרסאות,


הבדל

אנו מתייחסים להשוואה, הוא משווה קובץ "מקורי" לקובץ "חדש" ומודיע לנו על ההבדלים ביניהם. כלי זה מאפשר לנו גם ליצור קבצי Patch המשמשים אותנו ליצירת תיקונים עבור התוכניות שלנו.


תיקון

זו הפקודה שבאמצעותה אנו ממש "טלאים" את הקובץ המקורי שלנו, מוסיפים ו / או מסירים שורות בהתאם להוראות הכלולות בקובץ ה- patch.


יש גם וידיף, שהוא כלי ויזואלי ליישום טלאים ללא צורך בקובץ. תיקון, מכיוון שהוא משווה "מקורי" ו"חדש "ועל אותו קובץ ניתן לערוך שורה אחר שורה או את המסמך כולו. את זה לא אסביר אבל אני חושב שזה ראוי להזכיר.


לדוגמה

עכשיו הכיף הוא. דוגמא!

זה המקרה, יש לנו תסריט נהדר ששואל את שמך וגילך. אם אתה מעל גיל 18 זה אומר לך שאתה יכול להצביע, אחרת זה אומר לך שאתה לא יכול להצביע.

original.sh

#! / bin / bash echo "הזן את שמך:" קרא שם הד "הזן את גילך:" קרא גיל אם [[18 -lt $ age]] ואז הד "שלום $ name, אתה $ זקן ואתה יכול להצביע! " אחרת מהדהד "שלום $ שם, אתה $ זקן ואינך יכול להצביע ..." fi
תמונה של הקוד ב- Vim

תמונה של הקוד ב- Vim

בוצע, הנה התסריט הפועל:

נראה שהכל עובד בסדר

נראה שהכל עובד בסדר

לכן, כמשתמשים טובים אנו, אנו חולקים את התסריט שלנו עם חבר :), אך אנו מקבלים הודעה האומרת שיש לו פגם, שכאשר הוא בן 18 הוא אומר שהוא לא יכול להצביע מתי שהוא צריך.

שגיאת לוגיקה :(

שגיאת לוגיקה 🙁

עכשיו אנחנו מתחילים לתקן את השגיאה הקטנה ולבצע כמה שינויים ...

new.sh

#! / bin / bash maxAge = 18 הד "הזן את שמך:"; קרא שם הד "כתוב את גילך:"; קרא גיל אם [[$ maxAge -le $ age]]; ואז מהדהד "שלום $ שם, אתה בן שנה ואתה יכול להצביע!" אחרת מהדהד "שלום $ שם, אתה בן שנה ואתה לא יכול להצביע ...", יציאה 0
קוד חדש שנכתב ב- Vim

קוד חדש שנכתב מֶרֶץ

נניח שהתסריט כבד מאוד. לכן, כדי לא לשלוח את כל התסריט שוב, אנו יוצרים. תיקון 😀

$ diff -u original.sh new.sh> patch.patch

ועכשיו יש לנו את התיקון שלנו. הנה מבט על מֶרֶץ:

כך נראות ההוראות לתיקון. בלבן הקווים שלא שונו, בכחול אלה שהוסרו, בכתום אלה שנוספו.

כך נראות ההוראות לתיקון. בלבן הקווים שלא שונו, בכחול אלה שהוסרו, בכתום אלה שנוספו.

וכדי ליישם אותו אנו פשוט משתמשים בקובץ ה- Patch בסקריפט לתיקון. הנה נקרא originalAmigo.sh, שהוא העתק מדויק של התסריט original.sh

תסריט חבר

תסריט חבר

$ תיקון originalFriend.sh <תיקון.תיקון

וזה משאיר לנו את התיק שלנו originalAmigo.sh כך:

תסריט חבר לאחר החלת התיקון

תסריט חבר לאחר החלת התיקון

כפי שאתה יכול לראות קל מאוד להשיג את ההבדלים ולהחיל את התיקונים. הכל ממני.

שלום אנשים, נקרא ביום שישי הבא.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   זיריקס דיג'ו

    נהדר, תודה רבה 🙂

  2.   אנג'לבלייד דיג'ו

    אם אתה רוצה קצת צבע, אנא השתמש בקולורדיף ^ __ ^

  3.   אליוטיים 3000 דיג'ו

    עכשיו אני מבין איך טלאים עובדים בדביאן.

  4.   fer_pflores דיג'ו

    שלום, אני יודע שניתן להציג הודעות מערכת עם הודעה ושליחה מהקונסולה, אבל מה שאני רוצה לעשות זה להיות מסוגל לתזמן באיזו שעה או כמה זמן להציג לי הודעה, האם יש דרך לעשות זאת? אני משתמש ביסודי, שמבוסס על אובונטו 12.04, למקרה שזה עוזר, תודה

    1.    אלב דיג'ו

      ובכן, ניתן לעשות זאת באמצעות cron המערכת 😉

      1.    fer_pflores דיג'ו

        ואיך ניתן לעשות זאת? בקושי למדתי להשתמש בפקודה Notify-Send

        1.    ואדה דיג'ו

          אתה יכול לחפש cron כאן בבלוג יש הרבה פוסטים על זה 🙂

  5.   חואקין דיג'ו

    טוב מאוד תודה!

  6.   מטלטל דיג'ו

    אני תמיד משתמש בזה כדי לעדכן את הגרעין, אני מוריד רק את התיקונים ומחיל על המקורות, כך שאני לא צריך להוריד 80 מגה-בייט לכל מהדורה.