تحريك المؤشر
يمكن استخدام رموز الهروب لوضع المؤشر. يستخدم هذا بشكل شائع لتوفير ساعة أو نوع آخر من المعلومات في موقع مختلف على الشاشة ، مثل الزاوية العلوية في كل مرة يتم فيها رسم المطالبة. فيما يلي قائمة بأكواد الإفلات التي تحدد موضع المؤشر:
الجدول 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 [ك امسح من موقع المؤشر الحالي (أعلى الزاوية اليسرى) إلى نهاية السطر. نظرًا لأن لون الخلفية أصبح الآن أحمر ، يتم مسح الخط إلى هذا اللون لإنشاء شريطنا. لاحظ أن مسح نهاية السطر لا يغير موضع المؤشر الذي يظل في الزاوية اليسرى العليا.
\ 033 [1؛ 33m ضبط لون النص إلى الأصفر.
\t عرض الوقت الحالي. على الرغم من أن هذا عنصر "طباعة" ، إلا أننا ما زلنا ندرجه في الجزء غير القابل للطباعة من الموجه ، نظرًا لأننا لا نريد bash تضمين الساعة عند حساب الحجم الحقيقي للموجه المعروض.
\ 033 [0m إيقاف اللون. هذا يؤثر على كل من النص والخلفية.
\ 033 [u استعادة موضع المؤشر المحفوظ سابقًا.
\] قم بإنهاء تسلسل الأحرف غير المطبوعة.
<\ u @ \ h \ W> \ $ سلسلة مطالبة.