Если у вас есть rlwrap
(пакет Debian rlwrap
), то вы можете использовать что-то вроде:
LINE=$(rlwrap head -n1)
который будет использовать файл ~/.head_history
по умолчанию. ( man rlwrap
для более подробной информации, включая опции для указания имени файла истории.)
Другой возможностью является запуск read
в подоболочке с HISTFILE
установленным вашим собственным файлом истории, но вам нужно будет проделать гораздо больше работы, поскольку, хотя и read -e
использует историю, она не обновляет ее. Так что вам, вероятно, понадобится что-то вроде:
LINE=$(bash -c 'HISTFILE=/path/to/history_file; history -r; read -e LINE; history -s "$LINE"; history -w; echo "$LINE"')