我正在尝试创建一个简单的bash脚本,它会询问用户输入,然后根据他们选择的数字回显声明中的值。
declare -A bla
bla[1]="bla1"
bla[2]="bla2"
echo "What bla would you like?"
echo ""
echo "1) bla1"
echo "2) bla2"
read answer
echo "bla[$answer]"
当我运行此脚本时,我希望输出为“bla1”或“bla2”,具体取决于它们是否输入1或2.虽然我只得到输出:“bla [1]”或“bla [2]
我在这里做错了什么?
答案 0 :(得分:2)
您想在此处使用bash的select
命令:
bla=( bla1 bla2 )
PS3="What bla would you like? "
select b in "${bla[@]}"; do
[[ $b ]] && break
done
echo "you want: $b"
注意:
"${bla[@]}"
将数组扩展为其组成元素。$b
变量将为非空,break
语句将退出select
“循环”。答案 1 :(得分:1)
想出来我正在使用
#!/bin/sh
代替#!/bin/bash
,需要修改${bla[$answer]}
感谢您的帮助。