Я пишу сценарий 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
Но поскольку @ — это специальный символ, мне интересно, назначения клавиш безопасно, а если нет, что я могу сделать, чтобы сделать его более безопасным?
@()), но я не думаю, что это применимо к присваиванию. Кроме того, при расширении вы можете просто процитировать его. И в большинстве случаев предпочтительнее использовать форматarr["key"]=value. - person konsolebox   schedule 18.09.2013'<chars>', чтобы предотвратить расширение параметра. - person Rubens   schedule 18.09.2013