变量触发值的替换
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"
来显示变量的值。
我的计算引擎实例上有自定义元数据,键 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"
来显示变量的值。