用户输入以指定数组名称 [bash]

User input to specify array name [bash]

我刚开始学习 bash/shell 是为了好玩,我正在尝试创建一个简单的脚本,它应该接受用户输入,这应该是预构建数组的名称,然后 say 该数组中的每个项目,中间有一个暂停。

这是我目前的情况:

#!/bin/sh
array=("foo" "bar" "baz")

read -p "Which array should I read to you? " answer

for item in ${answer[@]}
do
    say "$item [[slnc 1000]]"
done

如果您能指出正确的方向,请告诉我!

您可以像这样使用可变数组名称访问数组:

#!/bin/bash

array=("foo" "bar" "baz")
read -p "Which array should I read to you? " answer

tmp="$answer"[@];

for item in "${!tmp}"; do
    echo "$item [[slnc 1000]]"
done

然后将上面的脚本用作:

bash arr.sh
Which array should I read to you? array
foo [[slnc 1000]]
bar [[slnc 1000]]
baz [[slnc 1000]]