使用read -p "ENTER 1 - 5 WORDS" v1 v2 v3 v4 v5
允许我通过在命令行上键入每个变量v
来赋值。这是最实用的方法吗?假设我想分配更多的变量。我会以同样的方式列出每一个吗?我尝试了read -p "ENTER 1-20 WORDS" {v1..v20}
但没有效果。
答案 0 :(得分:2)
v
不是序列的一部分。试试这个:
read -p "ENTER 1-20 WORDS" v{1..20}
答案 1 :(得分:1)
您可能想要使用read -a
读取数组:
$ read -a arr -p "Enter words: "
Enter words: v1 v2 v3 v4 v5
$ echo "${arr[@]}"
v1 v2 v3 v4 v5
$ read -a arr -p "Enter words: "
Enter words: v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
$ echo "${arr[@]}"
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
这使用shell字拆分并将输入分配给数组arr
,然后可以使用${arr[0]}
,${arr[1]}
等访问其元素。
主要优点是阵列保存的元素与您输入的元素完全相同,并且您不必事先知道将有多少元素。