Я написал этот сценарий для хранения некоторой информации о моей машине, такой как пользователи и запущенные процессы.
Я пытался сохранить полученные данные в массив. Чтобы протестировать массив, я напечатал длину массива следующим образом:
#!/bin/bash
###################################################################################
openFilesCount=$(lsof -Fn -u teeba| sort | uniq | grep /home | wc -l);
openPortsCount=$(lsof -Fn -u teeba| sort | uniq | grep /home | wc -l);
readingTime=$(date +%Y-%m-%d_%T);
usersArr=$(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd);
pidsArr=$(ps axo pid);
###################################################################################
echo "${#usersArr[@]}";
Вывод равен 1 ... хотя пользователей три? мне нужно разделить полученные данные на "\ n", например, прежде чем сохранять их в массиве? если да, то как?
Вы можете использовать,
usersArr=($(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd) )
for i in "${usersArr[@]}"
do
echo "$i"
done
здесь попробуйте это
#!/bin/bash
array=(elem1 elem2)
#to print the size of the array
echo "${array[@]}"
#to access an individual member
echo "element number ${#array[@]}"
Надеюсь, это поможет