システムに関するいくつかの情報を配列に保存しました..配列の長さを変数に保存し、変数の値を端末に出力しようとしましたが、出力はありません!
#!/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));
lastIdex=${#usersArr[@]};
###################################################################################
echo "$lastIndex";
エラーはどこにありますか?配列の長さを変数に格納する方法は?
基本的に構文は正しいです。 (;
は必要ありませんが、それは問題ではありません。)
どういうわけか、スクリプトは実際には実行されていないようです:
echo ${#nonexistentarray[@]}
これはalways 0(配列が存在しない場合)またはそれ以上(配列または変数が存在する場合)の数値を出力します。
スクリプトで、これらの2行が実際に実行された場合:
lastIdex=${#usersArr[@]};
echo "$lastIndex";
....... ok ...誤字があります:lastIdex
に値を設定していますが、その後lastIndex
...を出力しているので、おそらくそれが問題です。