Linux kabuk isteminin son dönüş değerini göstermesi


12

Şu anda bir Linux makinesindeyim ve kabuk istemi bana son dönüş değerini ve yürütülen komutların sayısını gösteriyor (resim dahil, bu sayılar mor renkle gösteriliyor).

Kendi bilgisayarımda bu yok, nasıl yapılandırabilirim?
Xubunto kullanıyorum, daha fazla ayrıntı gerekiyorsa bana bildirin - Linux kullanıcısı değilim (burada neyin önemli olduğunu bilmiyorum).

misal


Bu cevap veremeyecek kadar belirsiz. Yürüttüğünüz bu komutlar neler? Buna sahip olmayan bilgisayarınız (OS) nedir?
Chris Ting

İşletim sistemimin Xubuntu olduğunu söyledim ve bu herhangi bir komutla ilgili değil, sadece her zaman gösterilen bir şey.
Eran

Yanıtlar:


10

Görünüşe bashgöre Xubuntu'nun varsayılan kabuğu .

Düzenleyin .bashrcveya .bash_profile(sistem yapılandırmanıza bağlı olarak) ve ile başlayan bir satır arayın PS1=. Bu satır isteminizi ayarlar .

Son komutun dönüş değerini eklemek için, bu satıra aşağıdakileri ekleyin:

`echo -n $?`

bu yüzden örneğin aşağıdaki gibi görünür (benim şimdiki istemi, basitleştirilmiş):

PS1='\u in \w (`echo -n $?`)\n -> \$ '

_İmleç olarak şöyle görünecektir :

danielbeck in ~ (0)
 -> $ _

Alternatif olarak, PROMPT_COMMANDdönüş kodunu isteminize eklemek için ortam değişkenini kullanabilirsiniz :

export PROMPT_COMMAND='RET=$?; echo -n "($RET) "'

Bu, örneğin (0), başka şekilde değiştirilmemiş isteminizden hemen önce ekleyecektir .


\#Komut istemine ekleyerek "sayaç" elde edersiniz : bu komut numarasıdır . Daha olabilecek yararlı geçmişi numarasını 1'de başlamaz, ancak bir ünlem işareti girerek herhangi komutu çalıştırmasına izin veriyor, komutun geçmiş numarası takip:

984 $ foo
-bash: foo: command not found
985 $ !984
foo
-bash: foo: command not found
986 $ _

Bazı ek oyunlardan sonra:

PS1='`RET=$?; if [ $RET != 0 ] ; then echo "rc $?"; fi`\n\u in `pwd`\n#\# !\! \$ '

Bu, dönüş değerini yalnızca sıfırdan farklıysa, kendi satırında gösterir. Komut numarası ve geçmiş numarası gireceğiniz komutla aynı satırdadır:

danielbeck in /Users/danielbeck/Downloads
#1 !984 $ foo
-bash: foo: command not found
rc 127
danielbeck in /Users/danielbeck
#2 !985 $ _

5

Değişken $?, son çalıştırılan programın çıkış kodunu içerir.

ninth:~ sakkaku$ echo Hello World
Hello World
ninth:~ sakkaku$ echo $?
0
ninth:~ sakkaku$ cat asdasd
cat: asdasd: No such file or directory
ninth:~ sakkaku$ echo $?
1

Bence bir artırıcı kullanarak "yürütülen komutların sayısı" alabilirsiniz

ninth:~ sakkaku$ echo $[numcommands++]
0
ninth:~ sakkaku$ echo $[numcommands++]
1
ninth:~ sakkaku$ echo $[numcommands++]
2
ninth:~ sakkaku$ echo $[numcommands++]
3

Ardından, istemi değiştirmek için .bashrc dosyanızdaki PS1 / PS2 değişkenini değiştirmeniz gerekecektir. Bu iyi bir rehber gibi görünüyor (dışında değiştirilmesini önerir / etc / bashrc, ben sadece ~ / .bashrc yapardı).


1
Teşekkürler, daha sonra kendi bilgisayarımdayken deneyeceğim ve nasıl gittiğini göreceğim.
Eran

1

Bilginize, zsh kullanıyorsanız daha da kolay. Bu yapı: %(?..%F{red}%?%f)sıfırdan (normal) değilse son komutların hata seviyesini kırmızı olarak gösterir, ancak normalse hiçbir şey göstermez. Yapı %(1j.[%j].)araçları, köşeli parantez içindeki arka plan işi sayısını gösterir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.