Если я войду в свою оболочку bash
touch $HOME/tmp
echo "last thing" >> $HOME/tmp
history -r $HOME/tmp
, а затем нажму стрелку вверх, я увижу «последнее».
И если я вставлю те же строки в скрипт и создаю скрипт, то получу то же самое.
Однако это не сработает, если я сделаю
bash --init-file <(echo "history -r $HOME/tmp")
- сначала обрабатывается файл инициализации
, а затем содержимое $ {HISTFILE: - $ HOME / .bash_history}
загружается как обычно. Если этот файл содержит записи $ HISTSIZE
, как это обычно бывает, запись, загруженная с помощью history -r tmp
, выталкивается из начала списка истории и теряется.
У меня работают следующие варианты (в 4.1.2 на CentOS):
bash --init-file <(echo history -r temp; echo HISTFILE=/dev/null)
# in new shell history contains only the line(s) from temp
bash --init-file <(echo history -r temp; echo let HISTSIZE+=100)
# in new shell history contains the line(s) from temp THEN .bash_history