İlgili fakat değil yinelenen: How to define hash tables in Bash?Bash'ta bir ilişkisel dizi (karma) nasıl dışa aktarılır?
ben tanımlayabilir ve bash karma kullanın, ancak ben bile -x bayrağıyla, dışa alamıyorum olabilir. Örneğin, aşağıdaki işleri normal dize değişkeni (ve test ihracat içinde) ihracat:
[email protected]:/$ export animal_cow="moo"
[email protected]:/$ bash -c "echo \$animal_cow"
moo
[email protected]:/$
Ancak, karma dışa denerseniz:
[email protected]:/$ declare -A -x animals
[email protected]:/$ animals[duck]="quack"
[email protected]:/$ echo ${animals[duck]}
quack
[email protected]:/$ bash -c "echo \${animals[duck]}"
[email protected]:/$
iç içe bash kabuk yapar gibi görünüyor kendi alanında karma yok. Bunu ayrıca iç içe geçmiş bash kabuğuna elle girerek ve karma etkileşimli olarak kullanmayı denedim.
Biraz daha derine inerek, işletim sistemi tarafından ortam tanımlanır; kabuklar sadece çevreyi doldurmanın bir yolunu sağlar. POSIX (örnek olarak kullanmak), ortam değişkenleri için yapılandırılmış veriler için bir tanım sağlamaz; her değer basitçe bir dizedir. Bir diziyi (düzenli veya ilişkilendirici) tek bir dizeye dönüştürmek için bash'ın herhangi bir denemesi, bash'a özgü olacaktır. Bu, taşınabilirlik artık sadece işletim sistemi tarafından tanımlanmadığı için, ancak herhangi bir kullanıcının bir programı başlatmak için kullanmaya karar verebileceği herhangi bir yöntemle, bir taşınabilirlik kabusu yaratır. – chepner