2012-03-06 15 views
2

可能性の重複:bashで
How to define hash tables in bash?bashスクリプトのPerlハッシュに相当しますか?

Perlのハッシュ同等? お知らせください。

以下のコードはkornシェルではうまくいきますが、typesetにはエラーが表示されます。

#!/bin/ksh 
typeset -A newmap 
name="mandar" 
id="111515" 
newmap["name"]=$name 
newmap["id"]=$id 
echo "${newmap["id"]}" 
+0

は、Kornシェルでは、しかし、ではないbashで完璧に取り組んでいる[3.2バージョンを]、typesetのためのエラーを取得します。 '#!/ binに/ kshの タイプセット-A NEWMAP 名= "mandar" ID = "111515" NEWMAP [ "名前"] = $名 NEWMAP [ "ID"] = $ ID エコー「$ {newmap ["id"]} "' –

答えて

1

利用declare -A代わりのtypeset -Aあなたはbashの4以上を実行している場合。私はそれをテストし、それは正しくそのように動作します。

代わりにあなたがbashのためにテストし、あなたが(おそらく)変更されていない残りのスクリプトを実行できるようにエイリアスを作成することができます。次のコード

alias typeset=declare 
+0

あなたのシェルのバージョンは何ですか? –

+0

@mandy:そうです、これはBash 4以上で動作することを忘れてしまいました。私のバッシュ4.2。 –

関連する問題