0

次のスクリプトの最初の部分はうまく機能します。.dat ファイルは MySQL コマンドを介して作成され、(コマンド ラインを介して) gnu plot と完全に連携します。問題は、下部 (gnuplot) を正しく機能させることです。コードに変数と配列といういくつかの問題があると確信しています。各 .dat ファイル (プロット) を呼び出し、グラフにタイトルを付け (customers.txt のタイトルから)、名前を付ける (.png) 必要があります。

任意のガイダンスをいただければ幸いです。どうもありがとう -- RichR

#!/bin/bash
set -x

databases=""
titles=""
while read -r ipAddr dbName title; do
    dbName=$(echo "$dbName" | sed -e 's/pacsdb//')
    rm -f "$dbName.dat"
    touch "$dbName.dat"
    databases=("$dbName.dat")
    titles="$titles $title"
    while read -r period; do
    mysql -uroot -pxxxx -h "$ipAddr" "pacsdb$dbName" -se \
    "SELECT COUNT(*) FROM tables WHERE some.info BETWEEN $period;" >> "$dbName.dat"
    done < periods.txt
done < customers.txt

for database in "${databases[@]}"; do
gnuplot << EOF
        set a bunch of options
        set output "/var/www/$dbName.png"
        plot "$dbName.dat" using 2:xtic(1) title "$titles"
EOF 
done
exit 0

customers.txt の例 - 192.168.179.222 pacsdbgibsonia "Gibsonia Animal Hospital"

エラー出力……

+ for database in '"${databases[@]}"'
+ gnuplot
     line 0: warning: Skipping unreadable file ".dat"
     line 0: No data in plot
+ exit 0
4

1 に答える 1