Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.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
如何在这个变量[LinuxBash]中获得这个值_Linux_Bash - Fatal编程技术网

如何在这个变量[LinuxBash]中获得这个值

如何在这个变量[LinuxBash]中获得这个值,linux,bash,Linux,Bash,我可以在这个变量[LinuxBash]中得到这个值吗 我的代码 结果:1 我需要结果:text技巧是eval eval user$COUNTER=text 输出: /home/shellter:>eval "user$COUNTER"=text /home/shellter:>echo $user1 text Eval对命令行上的任何可见变量执行变量求值,然后将结果“重新提交”到正常的命令行求值和处理 通过使用set-vx打开shell调试,您可以看到这种情况的发生(一旦您使用了

我可以在这个变量[LinuxBash]中得到这个值吗 我的代码

结果:1 我需要结果:text

技巧是eval

eval user$COUNTER=text
输出:

/home/shellter:>eval "user$COUNTER"=text
/home/shellter:>echo $user1
text
Eval对命令行上的任何可见变量执行变量求值,然后将结果“重新提交”到正常的命令行求值和处理

通过使用
set-vx
打开shell调试,您可以看到这种情况的发生(一旦您使用了一段时间,它就会变得很明显)

我希望这有帮助


另外,作为一个新用户,如果你得到了一个有助于你的答案,请记住将其标记为已接受,并/或给它一个+(或-)作为一个有用的答案。

一般来说,使用你想要的动态变量名只会让你的生活更加困难。数组更容易使用(即使在bash中,它的语法也很挑剔:

#!/bin/bash
counter=1
declare -a user   # this line is optional
user[$counter]=text
echo "${user[$counter]}"

您还需要
eval echo$user$COUNTER
——您必须在任何时候取消引用“复合”变量时进行求值。
#!/bin/bash
counter=1
declare -a user   # this line is optional
user[$counter]=text
echo "${user[$counter]}"