确定用户输入的总数

dee*_*_86 1 command-line bash

echo -n "##### WHICH YEAR OR YEARS? #######"
read year
Run Code Online (Sandbox Code Playgroud)

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

hee*_*ayl 8

使用-a选项将输入保存在数组中read,然后计算数组的元素数:

$ read -a year
2015 2016 2010

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


$ read -a year
2010 2019

$ echo "${#year[@]}"
2
Run Code Online (Sandbox Code Playgroud)

或者使用wc -w,不需要数组:

$ read year
2013 2015 2017

$ wc -w <<<"$year"
3
Run Code Online (Sandbox Code Playgroud)

或者您可以使用设置位置参数set,然后进行计数:

$ read year
2015 2016 2017 2018

$ set -- $year

$ echo "$#"
4
Run Code Online (Sandbox Code Playgroud)

要将其保存在变量中:

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

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

var="$#"  ## For "set"
Run Code Online (Sandbox Code Playgroud)