如何避免在数组中没有空格的存储值?

问题描述

在我的 shell 脚本中,我写了一个命令的值存储在一个数组中。它有两个元素 (712,710),但它们作为一个元素存储在数组中(没有空格)。我该如何避免?

我的脚本:

 #! /bin/bash

GIT_API="https://XXXXXXXXXX.lk/api/v4"
GIT_TOKEN="XXXXXXXXXXXX"
GROUP_NAME="testdevops"

GROUP_ID=$(curl --request GET --header "PRIVATE-TOKEN: $GIT_TOKEN" -g "$GIT_API/groups?top_level_only=true&search=testdevops" | jq -r ".[] .id")
echo "${GROUP_ID}"

USER_ID_ARRAY=($(curl --request GET --header "PRIVATE-TOKEN: $GIT_TOKEN" "$GIT_API/groups/$GROUP_ID/members" | jq -r ".[] .id"))

USER_ACCESS_LEVEL_ARRAY=($(curl --request GET --header "PRIVATE-TOKEN: $GIT_TOKEN" "$GIT_API/groups/$GROUP_ID/members" | jq -r ".[] .access_level"))    
         
echo ${USER_ID_ARRAY[*]}
         
echo ${USER_ACCESS_LEVEL_ARRAY[*]}

for (( c=0; c<${#USER_ACCESS_LEVEL_ARRAY[@]}; c++ ))
do    
        if [ ${USER_ACCESS_LEVEL_ARRAY[$c]} != 50 ]
        then
        NON_OWNER_USERS_ARRAY_ELEMENT_NO+=(${c})
        fi
done
    
echo ${NON_OWNER_USERS_ARRAY_ELEMENT_NO[*]}
    
for (( d=0; d<${#NON_OWNER_USERS_ARRAY_ELEMENT_NO[@]}; d++ ))
do
        NON_OWNER_USERS_ID_ARRAY+=${USER_ID_ARRAY[${NON_OWNER_USERS_ARRAY_ELEMENT_NO[$d]}]}
done

echo ${NON_OWNER_USERS_ID_ARRAY[0]}

实际输出

36 711 712 710
50 50 20 10
2 3
712710

输出需求:

36 711 712 710
50 50 20 10
2 3
712 710

场景是这样的:在 GitLab 中识别给定组名的用户并将其从组中删除

解决方法

用()添加元素,用@访问它们

如下:

# declare
myArry=()

for(( d=0; d<2; d++ ))
do 
   # add element with ()
   myArray+=($d)
done

# access elemets with the @ operator
for value in "${myArray[@]}" 
do  
    echo "$value"
done

# or access the first element
echo ${myArray[0]}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...