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

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

8
配列要素がすべてbashで等しいかどうかをテストするにはどうすればよいですか?
次の配列は、各Linuxマシンのディスク数を表しています 各単一アレイには、Linuxマシン上のディスクの数が含まれます。 echo ${ARRAY_DISK_Quantity[*]} 4 4 4 4 2 4 4 4 すべての配列の値が等しいことを識別する簡単な方法は何ですか? 良い状態: 4 4 4 4 4 4 4 4 悪い状態: 4 4 4 4 4 4 2 4 悪い状態: 6 6 6 6 6 6 6 6 6 6 2 6 2
15 bash  shell-script  awk  array 

5
アイテムがbash配列にあるかどうかをテストするにはどうすればよいですか?
簡単なスクリプトのヘルプ #!/bin/bash array1=( prova1 prova2 slack64 ) a="slack64" b="ab" if [ $a = $b ] then echo "$a = $b : a is equal to b" else echo "$a = $b: a is not equal to b" fi このスクリプトは単に機能しません。リストにslack64が存在するかどうかを確認し(配列を使用)、yesが存在するかどうかを指定するスクリプトが必要です。配列を単一の変数と比較する方法がわかりません。
15 bash  array 

1
bash配列値を参照するときの@と*の違いは何ですか?
このBashガイドには次のように書かれています。 インデックス番号が@または*の場合、配列のすべてのメンバーが参照されます。 私がこれを行うとき: LIST=(1 2 3) for i in "${LIST[@]}"; do echo "example.$i " done 与える:(example.1 example.2 example.3望ましい結果)。 しかし、を使用すると${LIST[*]}、example.1 2 3代わりに取得します。 どうして? 編集:printfを使用すると、@と*は実際に同じ結果になります。
15 bash  array 

4
JSON配列の1つのフィールドをbash配列に解析します
変数に格納されたオブジェクトのリストを含むJSON出力があります。(私はその権利を表現していないかもしれません) [ { "item1": "value1", "item2": "value2", "sub items": [ { "subitem": "subvalue" } ] }, { "item1": "value1_2", "item2": "value2_2", "sub items_2": [ { "subitem_2": "subvalue_2" } ] } ] bashスクリプトをubuntu 14.04.1で実行するには、配列内のitem2のすべての値が必要です。 結果全体を配列に入れる方法がたくさん見つかりましたが、必要なアイテムだけではありません

4
Bashスクリプトはプロセスを待機して戻りコードを取得します
多くのバックグラウンドコマンドを開始するスクリプトを作成しようとしています。バックグラウンドコマンドごとに、リターンコードを取得する必要があります。 私は次のスクリプトを試しています: #!/bin/bash set -x pid=() return=() for i in 1 2 do echo start $i ssh mysql "/root/test$i.sh" & pid[$i]=$! done for i in ${#pid[@]} do echo ${pid[$i]} wait ${pid[$i]} return[$i]=$? if [ ${return[$i]} -ne 0 ] then echo mail error fi done echo ${return[1]} echo ${return[2]} 私の問題は待機ループ中にあり、2番目のPIDが最初のPIDの前に終了すると、戻りコードを取得できません。 wait …
13 linux  bash  process  array 


5
BASHの2つの配列の交差点
このような2つの配列があります。 A=(vol-175a3b54 vol-382c477b vol-8c027acf vol-93d6fed0 vol-71600106 vol-79f7970e vol-e3d6a894 vol-d9d6a8ae vol-8dbbc2fa vol-98c2bbef vol-ae7ed9e3 vol-5540e618 vol-9e3bbed3 vol-993bbed4 vol-a83bbee5 vol-ff52deb2) B=(vol-175a3b54 vol-e38d0c94 vol-2a19386a vol-b846c5cf vol-98c2bbef vol-7320102b vol-8f6226cc vol-27991850 vol-71600106 vol-615e1222) 配列はソートされていないため、重複した要素が含まれている可能性があります。 これら2つの配列の交差を作成し、要素を別の配列に格納したいと思います。どうすればいいですか? また、Bに表示されAで使用できない要素のリストを取得するにはどうすればよいですか?
12 bash  scripting  array 


3
ashにbashスタイルの配列に移植する方法は?
少し前に、bashスクリプトを記述しましたが、これはを使用して環境で実行できるはずashです。 でbash、それはのようでした。 services=( "service1.service" "service2.service" "service3.service" ) for service in "${services[@]}" do START $service done START() { echo "Starting "$1 systemctl start $1 } 実際には40ほどのサービスが並んでいますが、この移行をできるだけ簡単でクリーンなものにしたいと考えています。bashisms を常に使用しています。今、私はスクリプトをよりポータブルにするタスクに困っています。 移植性の理由から、おそらく純粋なash解決策があればいいでしょう。しかし、私はbusybox自分の自由にかなり頑強なので、移植性を犠牲にするかもしれません。「クリーン」スクリプトもメトリックであるため、読みやすさが大幅に向上する場合にのみ。 この場合、ポータブルでクリーンなソリューションは何でしょうか?
12 bash  shell  array  ash 

2
シェルによるアレイサポートのテスト
コマンドラインでローカルのBourneのようなシェルによる配列サポートをテストする簡潔な方法はありますか? これは常に可能です: $ arr=(0 1 2 3);if [ "${arr[2]}" != 2 ];then echo "No array support";fi または$SHELLシェルバージョンのテスト: $ eval $(echo "$SHELL --version") | grep version そして、私がそれにアクセスできると仮定して、manページを読みます。(そこからも、からの執筆で/bin/bash、私はすべてのBourneのようなシェルが長いオプションを認めていると仮定しています--version、それが例えば kshで壊れるとき。) スクリプトの最初またはそれを呼び出す前に、無人でUsageセクションに組み込むことができる簡単なテストを探しています。

3
文字列からBashの「単語」の配列に移動する
文字列から、各エントリがその文字列の各単語である配列に移動する必要があります。たとえば、次のように始まります: VotePedro="Vote for Pedro" 配列が必要です: Vote For Pedro 次に私は次のように反復できるはずです: for i in "${votePedroArray[@]}" do ## Do something done

2
bash配列の要素数をカウントします。配列の名前は動的です(つまり、変数に格納されます)。
質問の簡単な説明: 配列の完全なコピーを作成したり、配列を使用したりせずに、配列の名前が動的である(つまり、変数に格納されている)bash配列の要素数をカウントする組み込みのbashメソッドはありevalますか? 詳しくは: bashパラメータ置換を使用すると、次のことができます。 配列の長さを決定します myArr=(A B C); echo ${#myArr[@]}。 変数を名前で間接的に参照します NAME=myVar; echo ${!NAME}(これは配列要素にも適用されます): NAME=myArr[1]; echo ${!NAME} しかし、配列の名前が別の変数に格納されている場合、配列内の要素の数をどのように決定できますか?(これは、上記の2つのパラメーター置換の組み合わせと見なすことができます。)例: myArr=(A B C D) NAME=myArr # Get the number of elements in the array indirectly referenced by NAME. count=${#$NAME[@]} # This syntax is invalid. What is the right way? 以下は、すべて失敗する複数の試行です。 # Setup …

1
bash変数割り当ての単一括弧
bashの単一の括弧について疑問に思っていました。それらはサブシェルでコマンドを実行するために使用され、配列を作成するために使用されることは知っていますが、それ以外のものに使用されますか? 私の注意を引いたのは、変数の代入でinを使用すると、 var=(hello) echo $var # hello bashはエラーなどを生成せず、出力はあたかも同じです var=hello これら2つの変数の定義は同じですか、それとも違いがありますか?
11 bash  array 

2
デフォルトの配列をBashの変数に書き込む
私は期待していました excludes="${excludes:-( ${default_excludes[@]} )}" $excludesが空の場合は配列になります。残念ながら、後のもの:-は文字列と見なされます。構文のゆがみを逃したのですか、それとも不格好なものを使用する必要がありますか if [ -z "${excludes:-}" ] then excludes=( "${default_excludes[@]}" ) fi ?
10 bash  array 

1
getoptsを使用して1つのオプションに2つの引数を提供します
以下のコードでオプションrを指定getoptsすると、1つの引数が必要になります。 while getopts ":hr::l:" opt; do case $opt in r ) echo "Run Numbers - argument = $OPTARG " ;; l ) echo "Latency range - argument = $OPTARG" ;; h ) helptext graceful_exit ;; * ) usage clean_up exit 1 esac done しかし、-rオプションの後に、1つではなく2つの引数を渡す必要があります。これを行う簡単な方法はありますか?

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