Мне нужно принять пользовательский ввод в сценарии оболочки, который может работать как в BASH, так и в ZSH. Я привык использовать readline
в других языках, но это не кажется приемлемым вариантом в сценариях оболочки.
Пример подсказки может быть:
Please enter the value> 1234_
Как я могу предоставить пользователю редактируемый ввод со значением по умолчанию, которое можно отредактировать (отменить), которое совместимо с обеими оболочками?
read -e -p 'Please enter the value> ' -i '1234'
- person Cyrus   schedule 13.06.2019vared
встроенный модуль ZLE. . Это предположение,i=1234; vared -p 'Please enter the value> ' i
- person Toby Speight   schedule 13.06.2019bash
, ZLE дляzsh
). - person chepner   schedule 13.06.2019read -e -p 'Please enter the value> ' -i '1234' answer
приводит к чему-то вроде:Please enter the value> 1236
. Показать отредактированный пользовательский ввод, например:echo "$answer"
1236
- person Bernie Reiter   schedule 16.07.2020read
использует переменнуюREPLY
. Код, конечно, легче понять, если вы укажете переменную. - person Cyrus   schedule 16.07.2020