.phpsh
ホームディレクトリに2つのファイルがあり.php_history
、それらの名前を使用して、パス名の展開と、それがbashの連想配列にどのように影響するかをテストしたかった. 出くわした結果は奇妙に思えて、うまく説明できませんでした。私はここでたくさんのバリエーションを試しました。
>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 でのパス名展開はこれとどのように関係していますか?