determina o número total de entrada do usuário

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

Como posso verificar o número total de entrada do usuário (ano)? Por exemplo, a entrada do usuário da seguinte maneira; 2013 2014 2015. Então, o número total da entrada é 3. Há sempre um espaço entre as entradas. Qual código dá o número total de entradas do ano?

    
por deepblue_86 27.11.2015 / 20:00

1 resposta

8

Salve as entradas em uma matriz usando a opção -a de read e, em seguida, conte o número de elementos da matriz:

$ read -a year
2015 2016 2010

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


$ read -a year
2010 2019

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

Ou use wc -w , sem necessidade de array:

$ read year
2013 2015 2017

$ wc -w <<<"$year"
3

Ou você pode definir os parâmetros posicionais usando set e depois contar:

$ read year
2015 2016 2017 2018

$ set -- $year

$ echo "$#"
4

Para salvá-lo em uma variável:

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

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

var="$#"  ## For "set"
    
por heemayl 27.11.2015 / 20:04