最終的な目標は、動的な統計情報を持つウェブサイトを設定することです。 私は既にmysqlデータベースを作成し、私たちのminecraftサーバー上の既知のプレーヤーの総数を数えます。 次のステップは、すべてのプレイヤーのプレイ時間を完全に表示することです。時間の出力を検索して要約する
は、私はすべてのプレーヤーのための再生時間が表示されている「activetime.conf」を持っています。
activetime.conf:
config {
auto-save=300
default-range=5
max-range=10
}
players {
"111-111-1111-11-11" {
name=playerjack
time="2h13m25s"
}
222-2-22222-2-222 {
name=playergert
time="14m13s"
}
}
私が既に持っているもの:
players=$(ls -l /path | grep -v ^d | grep -v ^t | wc -l)
mysql -u root -pmypass mydatabase -e "UPDATE mytable SET players = '$players';"
hours_played=$(grep -E '"*h*m*s"' /path/activetime.conf)
echo $hours_played
私たちは、 "hours_played" 次の文字列を持っていると時間の情報のためにそれを検索したい+まとめ最終的にはフル時間だけを表示する時間。 hours_played
:
time="2h13m25s" time="14m13s"
最終的な結果は次のようになります。
2
結果は2であるのはなぜ?
#!/bin/bash
active_time() {
regex='time.*\"(.+)h(.+)m(.+)s\"'
while read -r str; do
if [[ $str =~ $regex ]] ; then
h=$((h + BASH_REMATCH[1]))
m=$((m + BASH_REMATCH[2]))
s=$((s + BASH_REMATCH[3]))
fi
sub=$((m/60 ))
tot=$((h + sub))
done<"/path/active_time.conf"
echo "${tot} total hours"
}
ので、代わりのあなただけ呼ぶようecho $hours_played
最後の最後の行をエコー:あなたができる
2h13m25s + 14m13s = 2h27m38s (=2h)
コーディングの努力を示してください。 – Cyrus
さらにいくつかの例を共有できますか? –
私は自分の質問を編集して、目標と目的を示しました。 – realKSMC