У меня есть два файла в моем домашнем каталоге .phpsh
и .php_history
и с их именами я хотел протестировать расширение путей и как он влияет на ассоциативные массивы в bash. Результаты, которые я натолкнулся, казались странными, и я не мог объяснить их. Здесь я попробовал целую кучу вариаций.Bash массивы и расширение пути: Weird output
>my_array_filename_var=(".phpsh"=10 ".php_history" =20)
>echo ${my_array_filename_var[.phpsh]}
ERROR
>echo "${my_array_filename_var[.phpsh]}"
ERROR
# This one below understandably doesn't work. But I was pulling my hair out.
>echo "${my_array_filename_var[".phpsh"]}"
ERROR
echo "${my_array_filename_var[\".phpsh\"]}"
ERROR
>echo "${my_array_filename_var[.phpsh]}"
ERROR
>echo "${my_array_filename_var[phpsh]}"
.phpsh=10
>echo "${my_array_filename_var[php_history]}"
.phpsh=10
>echo "${my_array_filename_var[\.php_history]}"
ERROR
где ERROR
маркер обозначает
bash: .phpsh: syntax error: operand expected (error token is ".phpsh")
Есть ли какое-то правило, что говорит, что я не могу иметь точечный характер в моем ключе для ассоциативного массива? Как расширение пути в bash играет с этим?