Как показано в этом ответе, можно использовать read
с Readline (-e
) в bash, чтобы возвращать предыдущие элементы истории, используя и вниз:
#! /usr/bin/env bash
while IFS="" read -p "input> " -e line; do
history -s "$line" # append $line to local history
done
Каков правильный способ сделать это в zsh? (получение пользовательского ввода в цикле и возможность завершения истории ключа вверх/вниз). Это не работает:
#! /usr/bin/env zsh
while IFS="" vared -p "input> " -c line; do
done
Я думаю, что завершение истории по умолчанию отключено в скриптах в zsh. Кроме того, я не хочу, чтобы история появилась из оболочки, но из ввода, введенного в script.