我编写了这个脚本来存储有关我的机器的一些信息,例如用户和正在运行的进程。
我尝试将检索到的数据存储到数组中。为了测试数组,我打印了数组的长度,如下所示:
#!/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”?如果是,该怎么做?
答案1
您可以使用,
usersArr=($(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd) )
for i in "${usersArr[@]}"
do
echo "$i"
done
答案2
试试这个
#!/bin/bash
array=(elem1 elem2)
#to print the size of the array
echo "${array[@]}"
#to access an individual member
echo "element number ${#array[@]}"
希望能帮助到你