Якщо ви хочете використовувати вихід history
команди з сеансу активної оболонки в сценарії, ви можете використовувати псевдонім, щоб запустити команду спочатку. Тоді в тому ж псевдонімі ви можете зателефонувати до залишку сценарію. За допомогою такої конфігурації ви можете досягти по суті того ж результату, що і history
команда у фактичному сценарії.
Наприклад, ви можете створити псевдонім на зразок цього, припускаючи, що ім'я сценарію - script.sh:
alias hy_tmp='history | tail -100 > /tmp/history.log ; bash /patch/to/script.sh'
І змініть сценарій до цього:
#!/bin/bash
cd /tmp
uuencode history.log history.txt | mail -s "History log of server" hello@hel.com
Це питання я знайшов під час написання процесу комбінування, сортування та синхронізації ~/bash_history
файлів на двох комп’ютерах, щоб було легко шукати команди, які я використовував у минулому.
Набагато менше клопоту оновлювати мій накопичувальний файл історії, не потребуючи входу в нову оболонку ~/bash_history
оновити. Для моніторингу сервера це, очевидно, не спрацює, як зазначено в інших відповідях.
Зокрема, моє використання:
alias hbye='history | cut -c 8- > /home/chris/.bash_history_c; bash /hby.sh
Потім сценарій hby.sh
витягує всі унікальні записи з усіх ~/.bash_history*
файлів.
histtest.sh: 5: set: Illegal option -o history