Bash: «номер истории» по сравнению с «номером команды»

В то время как Googling, как настроить приглашение оболочки через переменную PS1, я вижу таблицы специальных символов, которые можно использовать. В частности:

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

«История номер», как представляется, более широко используется, и я знаю, как использовать команды, такие как !523 для повтора команд из истории. Но я не могу понять, имеет ли «номер команды» аналогичную функциональность. Я пробовал помещать \# в свою переменную PS1 и, похоже, выводит количество команд, введенных в определенный сеанс (в отличие от \! Который сохраняется после выхода из системы / выхода).

  • Проверьте, вошел ли пользователь в систему после нажатия «Переключить пользователей»
  • Что означает этот синтаксис "$ {i% .avi} .mp4"
  • Выбор и сортировка IP-адреса, поддерживающего всю строку
  • Ввод каталогов, где имена совпадают в подстроке
  • Что вызывает эти странные персонажи?
  • Цикл через многомерный массив в bash 4
  • Кто-нибудь знает, как использовать «номер команды» удобным или значимым образом?

  • Предотвратить расширение glob в foo = "*"; echo $ foo
  • Bash while loop читает из списка путей, разделенных двоеточиями, используя IFS
  • "Команда | less "vs" less <(команда) "
  • Запуск построенной команды из сценария bash
  • Завершение бесконечного цикла
  • Как установить рекурсивные разрешения на реестр (с включенным ACL)?
  • One Solution collect form web for “Bash: «номер истории» по сравнению с «номером команды»”

    Насколько я могу судить (и это, по-видимому, подтверждается вашими исследованиями), нет никакого способа ссылаться на это магическое число в интерактивном режиме, или нет через быстрые клавиши fc или !n N. Кажется, что они относятся только к абсолютной позиции в списке истории, а не к относительной позиции, так как эта конкретная оболочка запускалась (что называется waht \# , как вы правильно указали).

    Единственный способ, который я нашел, чтобы сделать это лучше здесь, – установить следующее:

     export HISTFILESIZE=1001 export HISTSIZE=-1 

    Сюда:

    1. история нового сеанса начинается с 1000 , что упрощает идентификацию, где я нахожусь на сеансе
    2. (несколько несвязанных), я не теряю более старую историю на данном сеансе (но все равно не заливаю файл)

    В основном, это изменило мое измененное приглашение ( PS1="\\!$ " ) Из:

     499$ 

    чтобы:

     1000$ 

    … что делает его немного чище при запуске. Но это, вероятно, не тот ответ, который вы искали. 🙂

    (Кстати, я также посмотрел на zsh для решения, и, похоже, у него просто нет эквивалента \# , так что это тоже не помогает).

    Linux и Unix - лучшая ОС в мире.