【发布时间】:2013-09-18 16:22:29
【问题描述】:
我正在编写一个 bash 脚本,用于自动创建一些基本的测试输入文件。
由于数据的结构方式,我的脚本中有一部分我想在关联数组的某些键中使用@ 字符。
从粗略的回声测试来看,似乎没有任何问题:
$ declare -A arr
$ arr[1]=hello
$ arr[2]=world
$ arr[@1]=foo
$ arr[@2]=bar
$ for var in "${!arr[@]}"; do echo "key: ${var}, value: ${arr[$var]}" ; done
key: @1, value: foo
key: 1, value: hello
key: @2, value: bar
key: 2, value: world
但由于@ 是special character,我想知道这种密钥分配是否安全,如果不安全,我能做些什么让它更安全?
【问题讨论】:
-
除非你在它前面添加 $ 字符,就像任何文字字符一样,我猜不是。危险和其他角色一样。 @ 单独使用时也很特殊,除了在特殊模式中是另一个(
@()),但我认为它不适用于分配。此外,在扩展时,您可以引用它。大多数情况下,arr["key"]=value格式是首选。 -
此外,如果您在使用这些特殊字符时遇到任何问题,您可以简单地用单引号将它们括起来
'<chars>',以防止参数扩展。 -
谢谢大家。我不知道引用的语法是首选;为了安全起见,我会这样做。
标签: bash special-characters associative-array key-value