определите общее количество входа пользователя

echo -n "##### WHICH YEAR OR YEARS? #######"
read year

Как я могу проверить общее количество входа пользователя (год)? Например, вход пользователя следующим образом; 2014 2013 года 2015. Затем общее количество входа равняется 3. Между исходными данными всегда существует одно пространство. Какой код дает общее количество исходных данных года?

1
задан 27 November 2015 в 22:23

1 ответ

Сохраните исходные данные в массиве при помощи -a опция read и затем считайте число элементов массива:

$ read -a year
2015 2016 2010

$ echo "${#year[@]}"
3


$ read -a year
2010 2019

$ echo "${#year[@]}"
2
<час>

Или использование wc -w, никакая потребность в массиве:

$ read year
2013 2015 2017

$ wc -w <<<"$year"
3
<час>

Или можно установить позиционные параметры с помощью set и затем иметь количество:

$ read year
2015 2016 2017 2018

$ set -- $year

$ echo "$#"
4
<час>

Для сохранения его в переменной:

var="${#year[@]}"  ## For array

var="$(wc -w <<<"$year")"  ## For "wc -w"

var="$#"  ## For "set"
8
ответ дан 3 December 2019 в 06:22

Другие вопросы по тегам:

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