Как узнать количество слов, заданных в качестве входных данных в команде «чтения»?

Это не ядро, которое вам нужно исправить для # 1, это жесткий диск, который вы должны указать, чтобы он сообщал и использовал размер логического сектора 4 КБ.

С другой стороны, если (как вы говорите) все ваше программное обеспечение подготовлено для размера логического сектора 4 КБ, какая разница в размере сектора? Если все ваши операции чтения и записи кратны 4 КБ и аккуратно выровнены, какое преимущество вы получите от выдачи команды чтения на чтение накопителем

  • 25 блоков, начиная с блока 155, по сравнению с
  • 200 блоков, начиная с блока 1240? ?
0
26.11.2018, 01:33
3 ответа

Вы можете использовать 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.
1
28.01.2020, 02:14

Также есть опция немедленного bash, использующая параметр -a для read :

read -a text
echo "The input '${text[@]}' contains ${#text[@]} words."

С параметром -a переменная представляет собой массив слов, полученный с использованием обычного разделителя IFS. См. man bash в разделе ВСТРОЕННЫЕ КОМАНДЫ для получения более подробной информации.

3
28.01.2020, 02:14

Вот еще один способ сделать это - прочитать переменную, как у вас уже есть, а затем использовать стандартную утилиту POSIX set вместе с с помощью стандартного механизма расширения переменных оболочки, затем присвойте полученное количество элементов x :

read text
set -f        ## disable filename generation ("globbing")
set -- $text
x=$#
3
28.01.2020, 02:14

Теги

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