سؤال عرض ما هو سطر `history` الحالي في bash prompt


ما هي صيغة التنسيق التي يجب إضافتها إلى bash موجه للإشارة إلى أحدثها history تشغيل العنصر (أو رقم الأمر الحالي إذا كان يمكن إضافة 1 إلى آخر history دخول)؟

سلسلة المطالبة الخاصة بي هي:

\[\033[33m\][\u@\[\033[1;31m\]\h]\]\033[0m {\W}\n\033[1;34m\]\w\]\033[0m >

يعطيني العرض التالي:

[user@host] {~}
~ >

المستخدم باللون الأصفر ، والمضيف باللون الأحمر. يعد الإدخال الموجود بين قوسين هو الدليل الحالي ، ويكون الإدخال قبل أكبر من العلامة ممتلئًا pwd.

هل يمكنني إلحاق السطر الأول برقم الأمر الحالي حتى أتمكن من الحصول على شيء مثل ما يلي:

[user@host] {~} (nnn)
~ >

أين (nnn) هو رقم الأمر الحالي (أو الذي تمت معالجته للتو) ، كما هو موضح عند التشغيل history؟


3
2018-05-07 12:56


الأصل




الأجوبة:


من قسم التعجيل من صفحة رجل باش:

\!     the history number of this command
\#     the command number of this command

وأبعد من ذلك:

رقم الأمر والتاريخ   الرقم عادة ما تكون مختلفة:   رقم السجل الخاص بالأمر هو   موقف في قائمة المحفوظات ، والتي   قد تشمل الأوامر المستعادة من   ملف التاريخ ... ، في حين أن الأمر   الرقم هو الموقف في التسلسل   من الأوامر المنفذة خلال   جلسة القشرة الحالية.

إذا كنت تريد رقم الأمر الأخير ، يمكنك التفاف الرقم في تقييم حسابي مثل هذا:

export PS1='last cmd num: $((\# -1)), this num: \# '

6
2018-05-07 13:35