用Linux写一个 shell 脚本,包含两个数字数组 array1 和 array2,分别初始化为{1,2,3,4,5}和{1,4,9,16,25}。脚本生成并显示一个数组,其中的元素是这两个数组中对应元素的和,数组中第一个元素是 1+1=2,第 2 个元素是 2+4=6 等。
时间: 2023-04-06 17:04:47 浏览: 63
可以回答这个问题。以下是 shell 脚本的代码:
```bash
#!/bin/bash
array1=(1 2 3 4 5)
array2=(1 4 9 16 25)
for ((i=0; i<${#array1[@]}; i++)); do
sum=$((${array1[$i]} + ${array2[$i]}))
result[$i]=$sum
done
echo ${result[@]}
```
这个脚本首先定义了两个数组 array1 和 array2,然后使用 for 循环遍历这两个数组,计算对应元素的和,并将结果存储到一个新的数组 result 中。最后,使用 echo 命令输出 result 数组中的所有元素。
相关问题
shell脚本数组初始化
在Shell脚本中,数组的初始化可以通过多种方法完成。首先,可以使用静态定义的方法。方法一是直接使用等号将数组元素赋值,并用空格分隔开。例如,array=(1 2 3)可以初始化一个包含三个元素的数组。方法二是使用索引来给数组元素赋值,可以在括号内使用等号将索引与元素对应起来。例如,array=(=one =two =three)可以初始化一个包含三个元素的数组。方法三是逐个给数组元素赋值,可以使用索引来指定元素的位置。例如,array=a array=b array[2]=c可以初始化一个包含三个元素的数组。
另外,还可以从标准输入中读取内容来初始化数组。例如,下面的示例代码展示了如何通过读取机型和版本号来初始化数组:
declare -a mach #数组声明
i=0
while read -p "Enter the 机型,结束请直接输入回车:" m
do
if [ -z $m ]
then
break;
fi
mach[$i]=${m}
read -p "Enter ${mach[$i]} 版本号:" v
ver[$i]=$v
let i++
done
这段代码会循环读取用户输入的机型和版本号,然后将它们分别存储在名为mach和ver的数组中,实现了从标准输入给数组初始化的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Shell 数组](https://download.csdn.net/download/weixin_38677046/14893469)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [shell 数组的初始化](https://blog.csdn.net/zsj1126/article/details/111647975)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
shell 把一个数组赋给另一个数组
在Shell中,可以使用赋值语句将一个数组赋值给另一个数组。以下是一个示例代码:
```shell
# 声明第一个数组
array1=(1 2 3 4 5)
# 声明第二个数组
array2=()
# 将第一个数组赋值给第二个数组
array2=("${array1[@]}")
# 打印第二个数组的内容
echo "Array2: ${array2[@]}"
```
在这个示例中,我们声明了一个数组`array1`,其中包含一些元素。然后,我们声明了另一个数组`array2`,并将其初始化为空数组。接下来,通过赋值语句 `array2=("${array1[@]}")`,我们将`array1`的内容赋值给了`array2`。最后,通过打印`array2`的内容,我们可以看到`array2`现在包含与`array1`相同的元素。
运行此脚本将会输出:
```
Array2: 1 2 3 4 5
```
希望这个解答对你有帮助!