הזזת הסמן
ניתן להשתמש בקודי בריחה כדי למקם את הסמן. זה משמש בדרך כלל כדי לספק שעון או סוג אחר של מידע במיקום אחר על המסך, כגון פינה עליונה בכל פעם שההנחיה מצוירת. להלן רשימה של קודי בריחה הממקמים את הסמן:
טבלה 13-4: רצפי בריחה של תנועת הסמן
Escape Code Action
\033[l;cH הזז את הסמן לקו l ועמודה c
\033[nA הזז את הסמן למעלה n קווים
\033[nB הזז את הסמן למטה n קווים
\033[nC הזז את הסמן קדימה n תווים
\033[nD הזז את הסמן אחורה n תווים
\033[2J נקה את המסך והזז את הסמן לפינה השמאלית העליונה (שורה 0, עמודה 0)
\033[K נקה ממיקום הסמן לסוף השורה הנוכחית
\033[s אחסן את מיקום הסמן הנוכחי
\033[u זכר את מיקום הסמן המאוחסן
באמצעות הקודים שלמעלה, נבנה הנחיה המצייר פס אדום בחלק העליון של המסך המכיל שעון (מעובד בטקסט צהוב) בכל פעם שההנחיה מוצגת. הקוד להנחיה הוא המחרוזת האדירה הזו למראה:
PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33m\t\033[0m\033[u\]
<\u@\h \W>\$ "
PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33m\t\033[0m\033[u\]
<\u@\h \W>\$ "
בואו נסתכל על כל חלק של המחרוזת כדי לראות מה הוא עושה:
הזזת הסמן
טבלה 13-5: פירוט של מחרוזת הנחיה מורכבת
פעולה ברצף
פעולה ברצף
\[ מתחיל רצף תווים שאינו מודפס. המטרה של זה היא לאפשר ל-bash לחשב נכון את גודל ההנחיה הגלויה. ללא חישוב מדויק, תכונות העריכה של שורת הפקודה אינן יכולות למקם את הסמן בצורה נכונה.
\033[s אחסן את מיקום הסמן. זה נחוץ כדי לחזור למיקום המהיר לאחר שהסרגל והשעון צוירו בחלק העליון של המסך. שים לב שכמה אמולטורים מסוף לא מזהים את הקוד הזה.
\033[0;0H הזז את הסמן לפינה השמאלית העליונה, שהיא שורה 0, עמודה 0.
\033[0;41m הגדר את צבע הרקע לאדום.
\033[K נקה ממיקום הסמן הנוכחי (הפינה השמאלית העליונה) לסוף השורה. מכיוון שצבע הרקע כעת אדום, הקו מתנקה לצבע זה שיוצר את הסרגל שלנו. שימו לב שניקוי עד סוף השורה אינו משנה את מיקום הסמן, שנשאר בפינה השמאלית העליונה.
\033[1;33m הגדר את צבע הטקסט לצהוב.
\t הצג את השעה הנוכחית. אמנם זהו אלמנט "הדפסה", אך אנו עדיין כוללים אותו בחלק שאינו מודפס של ההנחיה, מכיוון שאיננו רוצים ש-bash יכלול את השעון בעת חישוב הגודל האמיתי של ההנחיה המוצגת.
\033[0m כבה את הצבע. זה משפיע גם על הטקסט וגם על הרקע.
\033[u שחזר את מיקום הסמן שנשמר קודם לכן.
\] סיים את רצף התווים שאינם מודפסים.
<\u@\h \W>\$ מחרוזת הנחיה.