如何从用户获取10个整数并将它们放在shell脚本中的Array中

时间:2014-02-19 19:11:59

标签: bash shell terminal

我认为这个问题非常开放。我需要从用户那里获取10个整数,但我只能用这样的一个:

echo "Please enter some input: "
read input_variable
echo "You entered: $input_variable"

但是我需要采取10.第一个问题是,有什么样的for循环可以在每次拍摄时增加每个拍摄并在达到10时完成?

如何将这些输入放入数组?

3 个答案:

答案 0 :(得分:1)

像这样使用read -a

read -p "Enter an array: " -a arr
echo "You entered: ${arr[@]}"

答案 1 :(得分:1)

您可以从一行读取多个以空格分隔的值:

read a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
echo "First value: $a1"
echo "Second value: $a2"
# etc.

read命令将读取单行,但会根据空格将行拆分为单词,并按顺序将它们分配给给定的名称。如果输入的数字较少,则后面的变量将保持未设置状态。如果有超过10个数字,a10将保留其余值。

要使用数组,请使用-a标志将所有值放在一个数组中:

read -a arr
echo "First value: ${arr[0]}"
echo "Second value: ${arr[1]}"
# etc.

答案 2 :(得分:1)

来晚会:

nums=()
for i in {1..10}; do
    read -p "$i. Enter a number: " num
    # ... validate response is a number, if you like ...
    nums+=("$num")
done
printf "%s\n" "${nums[@]}"