EDIT 1:約Multi-dimensional arrays in Bash、私が理解できる限り、すべての答えと例は連想配列で、数値の多次元配列ではありません。彼らは1つの値を持つ索引に名前をつけました.1つ以上の値を持つ数値索引ではありません。数値多次元配列(AKA 2D配列または二次元配列) - Bash
EDIT 2:おそらく、私が普通にできるように、配列内の2番目のインデックスの2番目の値を取得するために、私がBashで望むことをするのは不可能かもしれません:echo $A[1][1]
PHPなど。
編集3:this other questionによれば、私はこれが「人間が読める」方法でBashで行うことはできないとほとんど確信しています。 PHPで
これは数値の多次元配列を作成する方法を示します。
<?php
$b[]=array("Apple's Mac","UNIX from Ken, Dennis, Douglas and Peter");
$b[]=array("Sun Microsystems' Solaris","Linus Torvalds' Linux");
//or:
$b=array(
array("Apple's Mac","UNIX from Ken, Dennis, Douglas and Peter"),
array("Sun Microsystems' Solaris","Linus Torvalds' Linux")
);
print_r($b);
/*Array
(
[0] => Array
(
[0] => Apple's Mac
[1] => UNIX from Ken, Dennis, Douglas and Peter
)
[1] => Array
(
[0] => Sun Microsystems' Solaris
[1] => Linus Torvalds' Linux
)
)*/
//To access the first numeric array:
print_r($b[0]);
?>
私はバッシュでこれを行うことができますどのように?
A=(
"Apple's Mac" "UNIX from Ken, Dennis, Douglas and Peter"
"Sun Microsystems' Solaris" "Linus Torvalds' Linux"
)
#Trying to print the second array inside array ${A[@]}...
echo ${A[1]}
#It prints:
UNIX from Ken, Dennis, Douglas and Peter
#The same if I do:
X=("Apple's Mac" "UNIX from Ken, Dennis, Douglas and Peter")
Y=("Sun Microsystems' Solaris" "Linus Torvalds' Linux")
A=(
"${X[@]}"
"${Y[@]}"
)
echo ${A[1]}
#It prints:
UNIX from Ken, Dennis, Douglas and Peter
私は私が欲しい取得するために見つけることができる唯一の「ハック」方法:これは私がこれまで試したものです
A=(
"Apple's Mac|UNIX from Ken, Dennis, Douglas and Peter"
"Sun Microsystems' Solaris|Linus Torvalds' Linux"
)
#Printing the second index of the array
echo ${A[1]}
#It prints:
Sun Microsystems' Solaris|Linus Torvalds' Linux
#Accessing the second "value" of the second index
echo ${A[1]} | cut -d'|' -f2
#It prints:
Linus Torvalds' Linux
しかし、やって簡単に、より正確、適切な方法があるに違いありません同じ...
ありがとうございました。もちろん
source ./multi-array.save
:
あなたが戻って異なるアレイをロードする必要がある場合は、次の
#!/bin/bash
A1=("Apple's Mac" "UNIX from Ken, Dennis, Douglas and Peter")
A2=("Sun Microsystems' Solaris" "Linus Torvalds' Linux")
declare -p A1 A2 > multi-array.save
のように宣言して使用することができます。
「A」は、「X」と「Y」の内容を持つ複数要素の配列になります。その2番目の要素は、あなたが印刷したものです – Inian
はい、これは私が得たいものとは異なります。 bash配列の2番目のインデックスは、PHPコードから取得したのと同じ方法で配列にする必要があります。 – Roger
[BASHでの多次元配列]の重複の可能性があります。(0120-385-205) –