配列を使用してbashで負の値を比較する

配列を使用してbashで負の値を比較する

興味深い問題があり、解決しようとしていますが、まだ解決していません。

2つの配列があるとしましょう。

配列1:

1 -2 3 -2 2 -4

配列2:

-2 -3 4 5 2 -5

Array one合計のi番目の値を実際に比較できるようにしたいですArray two

  • どちらも負の場合は入力します。Array Three 0
  • すべて肯定的であれば追加します。1
  • 反対なら2

出力:

2 0 1 2 1 0 

どうすればいいですか?

ベストアンサー1

C、C ++、またはJavaに精通している場合、これらのbashs -loopforバリアントも非常によく知られています。bash算術評価が完了したので、(( ... ))値を比較するときに使用します。

array1=(  1 -2  3 -2  2 -4 )
array2=( -2 -3  4  5  2 -5 )

array3=( )

for (( i=0; i < ${#array1[@]}; ++i )); do
    if (( array1[i] < 0 && array2[i] < 0 )); then
        array3[$i]=0
    elif (( array1[i] > 0 && array2[i] > 0 )); then
        array3[$i]=1
    else
        array3[$i]=2
    fi
done

echo "${array3[@]}"

これは多くの機能が派生するksh93シェルでも機能します。bash

おすすめ記事