Как использовать команды истории с readonly PROMPT_COMMAND?

Я иногда вошел в систему на хосте, который я не контролирую и где PROMPT_COMMAND . Есть ли способ обойти это, чтобы запустить команды history любом случае , например, используя PS1 ? Я пробовал PS1='$(history -a; history -c; history -r; echo finished)' – он печатает в каждом приглашении, но, похоже, не работает:

  1. Откройте два терминала A и B на одном и том же хосте.
  2. В терминале A запустите команду a .
  3. В терминале B запустите команду b .
  4. На терминале B нажмите дважды.

На хосте, где PROMPT_COMMAND='history -a; history -c; history -r;' PROMPT_COMMAND='history -a; history -c; history -r;' , это приведет к тому, что терминал B покажет a . На хосте, где PS1 начинается с $(history -a; history -c; history -r; echo finished) он будет показывать, какая команда была запущена до того, как оба терминала были открыты. Очевидная причина заключается в том, что команда в PS1 выполняется в подоболочке.

Другой альтернативой является обход глобального RC-файла:

 bash --rcfile ~/.bashrc 

Однако обход использования стандартного значения PROMPT_COMMAND , скорее всего, не будет принят системным администратором по политическим соображениям.

One Solution collect form web for “Как использовать команды истории с readonly PROMPT_COMMAND?”

Вы можете запускать команды истории в обработчике сигналов, избегая использования подоболочки. Затем отправьте PS1 соответствующий сигнал:

 trap 'history -a; history -c; history -r;' USR1 export PS1='$(kill -USR1 $$)'"$PS1" 
  • В настоящий момент перестановка не поддерживается. Вы должны объединить объем, а затем снова установить его
  • Отметьте файловую систему ext4 как доступную только для чтения
  • Создает ли каталог / etc только плохую идею?
  • remount chrooted подкаталог только для чтения (non-mountpoint) для чтения-записи из тюрьмы?
  • файл по-прежнему доступен только для чтения после монтирования - из раздела rw
  • Блокировать устройства только для чтения в Linux (блокирование сырых записей)
  • Могу ли я перемонтироваться как только для чтения, если используется образ подкачки?
  • Тар перезаписывает файлы только для чтения
  • bash: Некоторая проблема при использовании read <<< "$ VARIABLE" в корневом разделе только для чтения. Любые известные обходные пути?
  • Как NFS делится «RO» для всех пользователей и «RW» на некоторые IP-адреса
  • Является ли `mount -o remount, ro` гарантией сбой, если есть файлы, открытые для записи?
  • Linux и Unix - лучшая ОС в мире.