df -h|awk 'NR==1 || /\/dev\/disk/ {print}'|uniq -c
Это печатает первую запись (, обозначенную NR
, которая является заголовком ), а затем все строки, соответствующие /dev/disk
. ||
означает «или».
Для самой команды read
ограничений нет. Но есть ограничение на то, сколько вы можете ввести в одной строке терминала. Чтобы убедиться в этом, попробуйте запустить команду wc -c
и набрать очень длинную строку. Вы достигнете того же предела в 4096 байт.
Чтобы ввести больше предела, либо сделайте код многострочным -, чтобы каждая строка была достаточно короткой, либо введите его каким-либо другим способом, кроме прямого считывания с терминала в приготовленном режиме .
Если вы включите readline, bash читает символы один за другим, и нет ограничений на длину строки, кроме доступной памяти.
read -e -p "Backup code:" backupcode
Однако считывание такого длинного ввода с терминала представляет собой очень плохой пользовательский интерфейс. Пользователь не собирается сидеть и набирать тысячи символов. Вместо этого прочитайте ввод из буфера обмена или из файла.