Bash:运行时的case-esac构造

时间:2013-07-16 14:29:01

标签: bash

我需要在执行脚本期间为运算符'case..esac'生成密钥,具有一对数组:

map=(
   "key1:expr1"
   "key2:expr2"
   "key3:expr3"
)

左边是关键,右边是表达。 想法?

谢谢!

1 个答案:

答案 0 :(得分:2)

原因你可以将bash代码生成为字符串并使用eval进行评估,但是在bash中实现所需行为的标准方法是:

#!/bin/bash

#statements, can read them from the file, etc.
key1='echo "hello 1"'
key2='echo "hello 2"'
key3='echo "hello 3"'

userinput="key3"

# print
echo ${!userinput}

# and likewise eval:
eval ${!userinput}