我确实有一个有趣的问题,我正在尝试解决,但我仍然无法这样做。
假设我有 2 个数组。
数组一:
1 -2 3 -2 2 -4
Run Code Online (Sandbox Code Playgroud)
数组二:
-2 -3 4 5 2 -5
Run Code Online (Sandbox Code Playgroud)
我希望能够实际比较两者Array one
和的第 i 个值Array two
:
Array Three
0
1
2
输出:
2 0 1 2 1 0
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?
如果您熟悉 C、C++ 或 Java,那么您会发现bash
's for
-loop 的这个变体也非常熟悉。 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[@]}"
Run Code Online (Sandbox Code Playgroud)
这也适用于ksh93
外壳,从中bash
获得了许多功能。