【发布时间】:2013-07-16 14:29:00
【问题描述】:
我需要在脚本执行期间为运算符“case..esac”生成键,有一个对数组:
map=(
"key1:expr1"
"key2:expr2"
"key3:expr3"
)
左边是关键,右边是表达。 想法?
谢谢!
【问题讨论】:
-
问题是......
-
eval 应该这样做:
help eval
标签: bash
我需要在脚本执行期间为运算符“case..esac”生成键,有一个对数组:
map=(
"key1:expr1"
"key2:expr2"
"key3:expr3"
)
左边是关键,右边是表达。 想法?
谢谢!
【问题讨论】:
help eval
标签: bash
当然,您可以将 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}
【讨论】: