【发布时间】:2016-02-14 05:24:16
【问题描述】:
在 CLI 的 bash 中,我可以做到:
$ ERR_TYPE=$"OVERLOAD"
$ echo $ERR_TYPE
OVERLOAD
$ read ${ERR_TYPE}_ERROR
1234
$ echo $OVERLOAD_ERROR
1234
这非常适合动态设置我的变量名;在脚本中它不起作用。我试过了:
#!/bin/env bash
ERR_TYPE=("${ERR_TYPE[@]}" "OVERLOAD" "PANIC" "FATAL")
for i in "${ERR_TYPE[@]}"
do
sh -c $(echo ${i}_ERROR=$"1234")
done
echo $OVERLOAD_ERROR # output is blank
# I also tried these:
# ${i}_ERROR=$(echo ${i}_ERROR=$"1234") # command not found
# read ${i}_ERROR=$(echo ${i}_ERROR=$"1234") # it never terminates
如何像在 CLI 中那样设置变量,但在脚本中?谢谢
【问题讨论】:
标签: linux macos bash variables