私はbashについても同様の答えを見つけましたが、shについてはそうではなかったので、私は尋ねています。
「Jun01Jun02Jun03Jun04」のようなものを含む$STRINGがあります。これを、$ {ARRAY [0]}が「Jun01」、${ARRAY[1]}が「Jun02」などの配列に入れたいと思います。
これどうやってするの?ありがとうございました。
標準(Bourne)シェルで配列をネイティブに処理することはできません。
詳細については、こちらをご覧ください。
Cシェル(47.5)、awk(33.11)、Kornシェル、およびその他のUNIXコマンドインタープリターには、配列サポートが組み込まれています。標準のBourneシェルはそうではありませんが、そのコマンドラインはset(44.19)コマンドで格納できる一種の配列であり、$ 1、$2などを介して格納された値を取得します。
私はbash(あなたが特定したように)またはPerlのようなより完全な機能を備えたスクリプト言語を使用しようとします(間違いなく他の人が彼らのお気に入りを提案するでしょう!)
shには配列がありませんが、多くの場合、次のハックで十分です。
set $STRING
for x; do eval "ARRAY_$((i++))='$x'"; done
さて、(i
最初は設定されていないか0であると仮定して)、$ARRAY_0
値はJun01
、、などです。$ARRAY_1
Jun02
あなたは位置パラメータで逃げることができます:それらは配列のようなものです。
set -- $STRING # no quotes here
echo $1
echo $2
# etc