номер команды 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, но на первый взгляд обе оболочки ведут себя сейчас одинаково.
1
отвечен mpy 2014-01-04 17:57:53
источник