Da Sie bereits die entsprechende Manpage durchgesehen haben und nichts passendes gefunden haben, stelle ich eine alternative Methode vor:
setopt PROMPT_SUBST
, Also Parameter, Kommando - Substitutionen und arithmetische Expansion in Aufforderungen durchgeführt.cmdcount
Für jeden ausgeführten Befehl über denpreexec
Hook eine Variable (mit 1 initialisiert) inkrementieren: Wird ausgeführt, nachdem ein Befehl gelesen wurde und gerade ausgeführt wird. (...)Verwenden Sie
$cmdcount
in Ihrer Eingabeaufforderung.
Code kopieren und einfügen für ~/.zshrc
:
setopt PROMPT_SUBST [[ $cmdcount -ge 1 ]] || cmdcount=1 preexec() { ((cmdcount++)) } PS1='$cmdcount ' # notice the single(!) tics
Und so funktioniert es (links = bash
mit \#
in PROMPT
, rechts = zsh
mit vorgeschlagenem Code):
bash$ PS1="\# " | zsh$ source ./above_code 2 /bin/echo some external command | 1 /bin/echo some external command some external command | some external command 3 cd internal command | 2 cd internal command bash: cd: internal: No such file or directory | cd: string not in pwd: internal 4 [no command, just pressed enter] | 3 [no command, just pressed enter] 4 | 3 4 | 3
Ich weiß nicht über das spezifische Verhalten \#
in bash Bescheid, aber auf den ersten Blick verhalten sich beide Shells jetzt ähnlich.