确定用户输入的总数

确定用户输入的总数
echo -n "##### WHICH YEAR OR YEARS? #######"
read year

如何检查用户输入的总数(年份)?例如,用户输入如下;2013 2014 2015。那么,输入的总数为 3。输入之间始终有一个空格。哪个代码给出了年份输入的总数?

答案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"

相关内容