Есть ли ограничение на команду чтения?

df -h|awk 'NR==1 || /\/dev\/disk/ {print}'|uniq -c

Это печатает первую запись (, обозначенную NR, которая является заголовком ), а затем все строки, соответствующие /dev/disk. ||означает «или».

2
30.06.2020, 23:21
1 ответ

Для самой команды readограничений нет. Но есть ограничение на то, сколько вы можете ввести в одной строке терминала. Чтобы убедиться в этом, попробуйте запустить команду wc -cи набрать очень длинную строку. Вы достигнете того же предела в 4096 байт.

Чтобы ввести больше предела, либо сделайте код многострочным -, чтобы каждая строка была достаточно короткой, либо введите его каким-либо другим способом, кроме прямого считывания с терминала в приготовленном режиме .

Если вы включите readline, bash читает символы один за другим, и нет ограничений на длину строки, кроме доступной памяти.

read -e -p "Backup code:" backupcode

Однако считывание такого длинного ввода с терминала представляет собой очень плохой пользовательский интерфейс. Пользователь не собирается сидеть и набирать тысячи символов. Вместо этого прочитайте ввод из буфера обмена или из файла.

3
18.03.2021, 23:23

Теги

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