变量触发值的替换

Variable triggers replacement of values

我的计算引擎实例上有自定义元数据,键 json 和值 { "a" : " * * * " }

现在当我这样做时:

curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/json" -H "Metadata-Flavor: Google"

结果:

{ "a" : " * * * " }

这是您所期望的。

但是现在我想把这个值放到一个变量中 :

JSON=$(curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/json" -H "Metadata-Flavor: Google")

变量JSON的值为:

{ "a" : " file_ind_dir1 file_ind_dir2 file_ind_dir1 file_ind_dir2 file_ind_dir1 file_ind_dir2 " }

所以我的自定义元数据值中的 * (asterix) 被替换为当前目录的列表!!

这是我分配变量的方式中的错误,还是应该归咎于 Compute Engine。

真的看不出是什么触发了这个替换。

PS:进行了更多测试,只有前面带有 space 的通配符似乎表现出这种行为。

可能您正在使用 echo $JSON 而不是 echo "$JSON" 来显示变量的值。