Это не ядро, которое вам нужно исправить для # 1, это жесткий диск, который вы должны указать, чтобы он сообщал и использовал размер логического сектора 4 КБ.
С другой стороны, если (как вы говорите) все ваше программное обеспечение подготовлено для размера логического сектора 4 КБ, какая разница в размере сектора? Если все ваши операции чтения и записи кратны 4 КБ и аккуратно выровнены, какое преимущество вы получите от выдачи команды чтения на чтение накопителем
Вы можете использовать wc -w
для подсчета слов. (Взгляните на мужской туалет
.)
$ read text
apple banana
$ echo $text
apple banana
$ echo $text|wc -w
2
$ x=$(echo $text|wc -w)
$ echo $x
2
$ echo "The input '$text' contains $x words."
The input 'apple banana' contains 2 words.
Также есть опция немедленного bash, использующая параметр -a
для read
:
read -a text
echo "The input '${text[@]}' contains ${#text[@]} words."
С параметром -a
переменная представляет собой массив слов, полученный с использованием обычного разделителя IFS. См. man bash
в разделе ВСТРОЕННЫЕ КОМАНДЫ для получения более подробной информации.
Вот еще один способ сделать это - прочитать переменную, как у вас уже есть, а затем использовать стандартную утилиту POSIX set
вместе с с помощью стандартного механизма расширения переменных оболочки, затем присвойте полученное количество элементов x
:
read text
set -f ## disable filename generation ("globbing")
set -- $text
x=$#