Linux 使用其他变量的名称创建变量
很难为这个找到一个标题:D 我有以下代码:Linux 使用其他变量的名称创建变量,linux,bash,variables,loops,Linux,Bash,Variables,Loops,很难为这个找到一个标题:D 我有以下代码: data=( "slots" "npcs" ) for i in "${data[@]}" do "$i"=$(mysql_exec "SELECT $i FROM orders WHERE order_id = $order") # slots returns 5 and npcs returns 1 done 在循环中,我想创建一个名为content from$I的变量。 因此,它应该创建一个名为slots(内容:5)和npcs(内容:1)
data=( "slots" "npcs" )
for i in "${data[@]}"
do
"$i"=$(mysql_exec "SELECT $i FROM orders WHERE order_id = $order") # slots returns 5 and npcs returns 1
done
在循环中,我想创建一个名为content from$I
的变量。
因此,它应该创建一个名为slots(内容:5)
和npcs(内容:1)
我希望你能理解我的问题:p
错误:
./install: Line 16: slots=5: command not found.
./install: Line 16: npcs=1: command not found.
如果您有bash 4,则可以使用关联数组:
data=(slots npcs)
declare -A res
for i in "${data[@]}"; do
res[i]=$(mysql …)
done
如果没有支持关联数组的shell,那么使用shell将无法很好地实现这一点。考虑使用脚本语言。您可以使用
awk
,如果其他方法都失败,它支持关联数组。使用awk
中的system
函数执行mysql
命令。如果您有bash 4,则可以使用关联数组:
data=(slots npcs)
declare -A res
for i in "${data[@]}"; do
res[i]=$(mysql …)
done
如果没有支持关联数组的shell,那么使用shell将无法很好地实现这一点。考虑使用脚本语言。您可以使用
awk
,如果其他方法都失败,它支持关联数组。使用awk
中的system
函数执行mysql
命令。如果您有bash 4,则可以使用关联数组:
data=(slots npcs)
declare -A res
for i in "${data[@]}"; do
res[i]=$(mysql …)
done
如果没有支持关联数组的shell,那么使用shell将无法很好地实现这一点。考虑使用脚本语言。您可以使用
awk
,如果其他方法都失败,它支持关联数组。使用awk
中的system
函数执行mysql
命令。如果您有bash 4,则可以使用关联数组:
data=(slots npcs)
declare -A res
for i in "${data[@]}"; do
res[i]=$(mysql …)
done
如果没有支持关联数组的shell,那么使用shell将无法很好地实现这一点。考虑使用脚本语言。您可以使用
awk
,如果其他方法都失败,它支持关联数组。使用awk
中的system
函数执行mysql
命令。您可以使用declare
命令动态创建变量名
data=( "slots" "npcs" )
for i in "${data[@]}"
do
declare "$i=$(mysql_exec "SELECT $i FROM orders WHERE order_id = $order")" # slots returns 5 and npcs returns 1
done
read
命令也可与工艺变电站一起使用
read $i < <(mysql_exec "SELECT $i FROM orders WHERE order_id = $order")
您可以使用
declare
命令动态创建变量名
data=( "slots" "npcs" )
for i in "${data[@]}"
do
declare "$i=$(mysql_exec "SELECT $i FROM orders WHERE order_id = $order")" # slots returns 5 and npcs returns 1
done
read
命令也可与工艺变电站一起使用
read $i < <(mysql_exec "SELECT $i FROM orders WHERE order_id = $order")
您可以使用
declare
命令动态创建变量名
data=( "slots" "npcs" )
for i in "${data[@]}"
do
declare "$i=$(mysql_exec "SELECT $i FROM orders WHERE order_id = $order")" # slots returns 5 and npcs returns 1
done
read
命令也可与工艺变电站一起使用
read $i < <(mysql_exec "SELECT $i FROM orders WHERE order_id = $order")
您可以使用
declare
命令动态创建变量名
data=( "slots" "npcs" )
for i in "${data[@]}"
do
declare "$i=$(mysql_exec "SELECT $i FROM orders WHERE order_id = $order")" # slots returns 5 and npcs returns 1
done
read
命令也可与工艺变电站一起使用
read $i < <(mysql_exec "SELECT $i FROM orders WHERE order_id = $order")