2012-05-10 4 views
3
nmcli -t -f STATE,WIFI,WWAN 

は出力(bash)コマンド出力の塊に個別の配列要素としてアクセスする方法は?

私は私には論理的な解決策は、配列にこれを有効にすることです

Networking: connected, Wifi: enabled, WWAN: disabled 

のようなものに変換したい

connected:enabled:disabled 

を与えます。 bashスクリプティングの新機能であるため、配列は単なる通常の変数であり、要素は空白で区切られています。現在、私のコードは、forループのための仕事のようなもののようですが、私は$ {NMOUTは[]}のように、特定の要素をお願いしたくない場合は

declare -a NMOUT=$(nmcli -t -f STATE,WIFI,WWAN nm | tr ":" "\n") 

です。明らかに私はここでいくつかの重要なコンセプトを見逃しています。この配列内の特定の要素にアクセスするにはどうすればよいですか?

答えて

1

Ignacio Vazquez-Abramsは、アレイを作成するためにはるかに優れたソリューションを提供しました。私は掲示された質問に対処します。

配列のbashでは

"${NMOUT[0]}" # first element of the array 
"${NMOUT[2]}" # third element of the array 
"${NMOUT[@]}" # All array elements 
"${NMOUT[*]}" # All array elements as a string 
以下はbashでアレイを使用する上で優れた情報提供

0から始まる整数によって索引付けされている:リンク用http://mywiki.wooledge.org/BashFAQ/005

+0

おかげ。役に立った!私は、出力が既に必要なようにフォーマットされた別のコマンドを見つけた後にあきらめてしまいましたが、これは将来知っておくと便利です。 – dn3s

+0

@ dn3s "ありがとう"と言ってもよいのは、アップ投票をしたり、回答を受け入れることです。 – jordanm

+0

ごめんなさい。受け入れられたが、まだ担当者の不足のためにupvoteすることはできません。 – dn3s

2
IFS=: read -a NMOUT < <(nmcli -t -f STATE,WIFI,WWAN) 
関連する問題