Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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
Bash 使用另一个变量的名称打印变量值_Bash - Fatal编程技术网

Bash 使用另一个变量的名称打印变量值

Bash 使用另一个变量的名称打印变量值,bash,Bash,假设我有以下两个变量: color=black round_black_car=IGK47546 是否可以使用可变颜色打印IGK47546 echo${round{color}{car}不工作。它给我提供了错误的替换。您应该使用eval表达式结合反斜杠来执行替换 $ color=black $ round_black_car=IGK47546 $ eval echo \${round_${color}_car} IGK47546 这不是一种安全的做法,因为它将数据解析为代码—这是注入攻击、权

假设我有以下两个变量:

color=black
round_black_car=IGK47546
是否可以使用可变颜色打印IGK47546


echo${round{color}{car}不工作。它给我提供了错误的替换。

您应该使用eval表达式结合反斜杠来执行替换

$ color=black
$ round_black_car=IGK47546
$ eval echo \${round_${color}_car}
IGK47546

这不是一种安全的做法,因为它将数据解析为代码—这是注入攻击、权限提升攻击(当用户可以提供使用不同权限运行的脚本所使用的数据时)和其他类型安全漏洞中的关键组件。考虑颜色='} $rm -rf$${'作为一个说明性的例子。参见一个最佳实践方法。EVE绝对不是最佳实践方法;进入最好避免的原因。