我必须编写一个bash脚本,可以让用户选择要显示的数组元素。
例如,数组具有这些元素
ARRAY =(零一二三四五六)
我希望脚本能够在用户输入数组索引
后打印出该元素让用户输入(在一行中): 1 2 6 5
然后输出将是:一个二六五
输入的索引可以是单个(输入: 0 输出:零)或多个(如上),输出将对应于索引(es)输入
非常感谢任何帮助。
感谢
答案 0 :(得分:1)
ARRAY=(zero one two three four five six)
for i in $@; do
echo -n ${ARRAY[$i]}
done
echo
然后像这样调用这个脚本:
script.sh 1 2 6 5
它会打印出来:
one two six five
答案 1 :(得分:0)
您可能希望将关联数组用于通用解决方案,即假设您的密钥不仅仅是整数:
# syntax for declaring an associative array
declare -A myArray
# to quickly assign key value store
myArray=([1]=one [2]=two [3]=three)
# or to assign them one by one
myArray[4]='four'
# you can use strings as key values
myArray[five]=5
# Using them is straightforward
echo ${myArray[3]} # three
# Assuming input in $@
for i in 1 2 3 4 five; do
echo -n ${myArray[$i]}
done
# one two three four 5
另外,请确保您使用Bash4(版本3不支持它)。有关详细信息,请参阅this answer and comment。