Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用其他变量的名称创建变量_Linux_Bash_Variables_Loops - Fatal编程技术网

Linux 使用其他变量的名称创建变量

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)

很难为这个找到一个标题: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)

我希望你能理解我的问题: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")