如何避免在数组中存储没有间距的值?
How to avoid the storing values without spacing in an array?
在我的 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]}
在我的 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]}