タグ付けされた質問 「array」

配列は、アイテムを継続的にメモリに格納するための最も単純なデータ構造です

5
bashで配列の最後の要素を読み取る方法はありますか?
たとえば、5つの要素を持つ配列がある場合: [a][b][c][d][e] 使用してecho ${myarray[4]}、それが何を保持しているかを見ることができます。 しかし、与えられた配列の要素の数がわからない場合はどうでしょうか?未知の長さの配列の最後の要素を読み取る方法はありますか?すなわち、任意の配列の右から左に読み取る最初の要素? これをbashで行う方法を知りたいです。
68 bash  array 

2
bashで定義された配列の長さを数える方法は?
私はbashが初めてなので、質問に答えるための良いチュートリアルが見つかりません。 array=( item1 item2 item3) for name in ${array[@]}; do echo current/total ... some other codes done これの予想される出力として、「現在」と「合計」の値を計算します。 1/3 2/3 3/3 あらゆる種類のヒントをありがとう
58 bash  array 

4
配列から要素を完全に削除するにはどうすればよいですか?
unset array[0]要素を削除しますが、まだecho ${array[0]}私がnull値を取得した場合、これを行う他の方法がありますが、配列の要素に次のようなスペースが含まれている場合 array[0]='james young' array[1]='mary' array[2]='randy orton' しかし、これらも仕事をするのに失敗します array=${array[@]:1} #removed the 1st element 今、私は新しい配列を次のようにしたい array[0]='mary' array[1]='randy orton' スペースは割り当て後に問題を引き起こし、実際の配列は置換のようになります。 array=(mary randy orton)


3
配列をコマンドの引数に変換しますか?
コマンドの「オプション」の配列があります。 my_array=(option1 option2 option3) 配列の値をオプションとして使用して、bashスクリプトでこのコマンドを呼び出します。したがって、次のようにcommand $(some magic here with my_array) "$1"なります。 command -option1 -option2 -option3 "$1" どうすればいいですか?出来ますか?
40 bash  parameter  array 

3
`構文エラー:配列を作成するときの「(" unexpected`」
2台の(Debian)Linuxサーバーがあります。シェルスクリプトを作成しています。 最初に、こうして配列を作成します: #!/bin/bash target_array=( "/home/user/direct/filename -p123 -r" ) それはうまくいきます。しかし、他のサーバーでこれを実行すると、次のようになります: Syntax error: "(" unexpected 私の知る限り、両方のサーバーは同じです。なぜこれがうまくいかないのか、誰かが光を当てることができますか? ターミナルに直接入力すると問題ありませんか? 私がそれを実行すると sh scriptname.sh エラーが表示されますが、次のように実行すると ./scriptname.sh 大丈夫そうです。違いは何ですか?

2
Zsh配列の最初の要素が0ではなく1でインデックス付けされる理由はありますか?
最近のプログラミングおよびスクリプト言語の経験から、ほとんどのプログラマーは一般に、配列の最初の要素をインデックスとして0で参照することに慣れていると思います。1 を使用することで実質的な利点はありますか? Zsh以外の言語でも、配列と同様に動作することを聞いたことがあると思います。それは同じように便利なので、私は大丈夫です。 ただし、以前にリリースされ、広く使用されているkshやbashなどのシェルスクリプト言語ではすべて0が使用されているため、 なぜこの共通の「標準」を変更することを選択するのでしょうか。 私の質問に対する私の即時の答えは「もちろんそうではない」でしょう。 シェルに対するこの「排他的な機能」に関して私が考えることができる唯一の説明は、「彼らはクールなシェルをもう少し見せるためにこれをやっただけ」だろう。 私はZshやその歴史についてあまり知りませんが、これに関する私の些細な理論が意味をなさない可能性が高いです。 これについての説明はありますか?それとも個人的な趣味から外れているのでしょうか?
27 zsh  history  array 

4
Unix Bourne Shellの配列
Bourneシェル(/bin/sh)で配列を使用しようとしています。配列要素を初期化する方法は次のとおりです。 arr=(1 2 3) しかし、エラーが発生しています: syntax error at line 8: `arr=' unexpected 今、私がこの構文を見つけた投稿はそれがのためbashであると言いますが、私はBourneシェルのための別の構文を見つけることができませんでした。構文も同じ/bin/shですか?


3
Bashで起こりうるバグ?:foo(){echo“ $ {var [0]}”; }; var =(bar baz)foo
OS:Ubuntu 16.04.3 シェル:Bash 4.3.48 のように変数の内容を一時的に変更することが可能であることを知っています。var=value commandおそらくこれIFS= read -r varが最も顕著なケースです。 そして、グレッグのウィキのおかげで、私も理解しています: # Why this foo() { echo "$var"; } var=value foo # And this does work var=value; echo "$var" # But this doesn't var=value echo "$var" 私の理解を逃れるのはこれです: $ foo() { echo "${var[0]}"; } $ var=(bar baz) foo (bar baz) 私の知る限り(そして前の例のロジックに従って)、印刷すべきであり、ではbarありません(bar baz)。 …
22 bash  array 


1
awkで配列を削除する
awkでは、ループを使用して配列をクリアし、空の配列にすることができます。これは、削除と同等です。 for (key in array) delete array[key]; もっと簡単な方法はありますか?変数名をスカラーに再利用できるように、配列を完全に削除できますか?
18 awk  array 

2
「$ {my_array [@] /#/-}」の/#/-はどのタイプの操作ですか?
配列をコマンドの引数に変換するために受け入れられた答えは?次のBashコマンドを使用します。 command "${my_array[@]/#/-}" "$1" 私は、/#/-パーツが何をするのかを正確に把握しようとしています。残念ながら、私はそれを何と呼ぶべきかわからないので、ドキュメントを見つけるのに苦労しています。アレイといくつかのWebサイトに関するBashのマニュアルページセクションを調べましたが、何も見つかりません。
17 bash  array 

5
BASH連想配列印刷
すべての要素をループすることなく、配列全体([key] = value)を印刷する方法はありますか? いくつかの要素を持つ配列を作成したと仮定します。 declare -A array array=([a1]=1 [a2]=2 ... [b1]=bbb ... [f500]=abcdef) 配列全体を印刷して戻すことができます for i in "${!array[@]}" do echo "${i}=${array[$i]}" done ただし、bashはすべての配列要素を1つの "go"(キー${!array[@]}と値の両方)で取得する方法を既に知っているようです${array[@]}。 ループなしでこの情報をbashに出力させる方法はありますか? 編集: typeset -p arrayそれは! ただし、1回の置換でプレフィックスとサフィックスの両方を削除することはできません。 a="$(typeset -p array)" b="${a##*(}" c="${b%% )*}" 出力のキー=値部分のみを取得/印刷するよりクリーンな方法はありますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.