установите `history -r` в --init-file

Если я войду в свою оболочку bash

touch $HOME/tmp
echo "last thing" >> $HOME/tmp
history -r $HOME/tmp

, а затем нажму стрелку вверх, я увижу «последнее».

И если я вставлю те же строки в скрипт и создаю скрипт, то получу то же самое.

Однако это не сработает, если я сделаю

bash --init-file <(echo "history -r $HOME/tmp")
0
12.03.2017, 14:04
1 ответ

- сначала обрабатывается файл инициализации , а затем содержимое $ {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
1
28.01.2020, 02:46

Теги

Похожие вопросы