MST

星途 面试题库

面试题:Bash变量的复杂使用

编写一个Bash脚本,实现从用户输入获取一个整数,然后定义一个关联数组,数组的键为从1到该整数的所有数字,值为对应键的平方。最后遍历这个关联数组并打印出所有键值对。同时说明如果在脚本不同位置修改这个关联数组变量,对其作用域的影响。
31.6万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

# 获取用户输入的整数
read -p "请输入一个整数: " num

# 定义关联数组
declare -A assoc_array
for ((i = 1; i <= num; i++)); do
    assoc_array[$i]=$((i * i))
done

# 遍历并打印关联数组
for key in "${!assoc_array[@]}"; do
    echo "键: $key, 值: ${assoc_array[$key]}"
done

# 关于作用域的说明
# 在函数外定义的关联数组,其作用域是整个脚本(全局变量)。
# 如果在函数内部修改这个关联数组,默认情况下会修改全局变量的值。
# 若想在函数内部创建一个局部的关联数组副本,可以在函数内部重新声明关联数组(declare -A local_assoc_array),这样对局部数组的修改不会影响到全局的关联数组。