Я ищу символ, чтобы положить в моем zsh
s $PROMPT
Это было бы эквивалентно bash
s #
(номер команды этой команды, по данным этот сайт). Пока что я нашел только %h
но это не то, что я ищу, это эквивалентно !
.
номер команды bash (#) эквивалентен в zsh
1 ответ
поскольку вы уже просмотрели соответствующую man-страницу и не нашли ничего подходящего, я представлю альтернативный метод:
setopt PROMPT_SUBST
, so расширение параметров, подстановка команд и арифметическое расширение выполняются в подсказках.увеличить varable
cmdcount
(инициализируется 1) для каждой выполняемой команды черезpreexec
припев: выполняется сразу после прочтения команды и примерно быть казненным. (...)использовать
$cmdcount
в командной строке.
скопируйте и вставьте код для вашего ~/.zshrc
:
setopt PROMPT_SUBST
[[ $cmdcount -ge 1 ]] || cmdcount=1
preexec() { ((cmdcount++)) }
PS1='$cmdcount ' # notice the single(!) tics
и вот как это работает (left = bash
С \#
in PROMPT
, right = zsh
С предложенной код):
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
я не знаю о конкретном поведении \#
в bash, но на первый взгляд обе оболочки ведут себя сейчас одинаково.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]