web-dev-qa-db-ja.com

コマンドの出力をBashの配列に読み込む

スクリプト内のコマンドの出力を配列に読み込む必要があります。コマンドは、たとえば次のとおりです。

ps aux | grep | grep | x 

そして、次のような行ごとに出力を提供します。

10
20
30

コマンド出力から値を配列に読み込む必要があります。配列のサイズが3未満の場合は、いくつかの作業を行います。

69
barp

使用できます

my_array=( $(<command>) )

コマンド<command>の出力を配列my_arrayに保存します。

を使用してその配列の長さにアクセスできます

my_array_length=${#my_array[@]}

これで、長さはmy_array_lengthに保存されます。

ファイルとディレクトリ名(現在のフォルダーの下)を配列に入れ、そのアイテムをカウントすることを想像してください。スクリプトは次のようになります。

my_array=( `ls` )
my_array_length=${#my_array[@]}
echo $my_array_length

または、次のスクリプトを追加して、この配列を反復処理できます。

for element in "${my_array[@]}"
do
   echo "${element}"
done
8
Youness