【问题标题】:Bash: case-esac construction in runtime [duplicate]Bash:运行时的case-esac构造[重复]
【发布时间】:2013-07-16 14:29:00
【问题描述】:

我需要在脚本执行期间为运算符“case..esac”生成键,有一个对数组:

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

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

谢谢!

【问题讨论】:

  • 问题是......
  • eval 应该这样做:help eval

标签: bash


【解决方案1】:

当然,您可以将 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}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 2023-03-24
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多