0

基本的なテスト入力ファイルの作成を自動化する 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

But since @ is a special character, I'm wondering if this sort of key assignment is safe, and if not, what I could do to make it safer?

4

1 に答える 1

0

bash連想配列@のキー名の一部として使用しても問題ありません。

base64 に変換する場合、 Bash はat @アンダースコア _英数字として次の順序で使用します。

0..9 a..z A..Z @ _

$ echo {0..9} {a..z} {A..Z} @ _

これを試して:

$ echo $((64#10))
64
$ echo $((64#_))
63
$ echo $((64#@))
62
$ echo $((64#Z))
61
$ echo $((64#A))
36
$ echo $((64#z))
35
$ echo $((64#a))
10

したがって、の下では、これで問題ありません。

述べる

ただし、警告: スクリプトがアプリケーションになる場合、は開発言語としてあまり適していない可能性があります。

于 2013-09-18T17:08:50.183 に答える