echo gammu 環境変数

echo gammu 環境変数

SMS送受信プログラム、gammuで設定したいくつかの環境変数を使用するスクリプトを作成しようとしています。これらの変数はメッセージの受信または送信時に設定され、そうでない場合はアクセスできません。これは、これらの変数を使用するには、デーモンがスクリプトを実行する必要があることを意味します。実際、これらにアクセスすることは問題ではありません!以下は、gammuで実行したいサンプルスクリプトです。

#!/bin/sh
for i in `seq $SMS_MESSAGES` ; do
        echo SMS_"${i}"_NUMBER SMS_"${i}"_TEXT >> smslog.dat
done

デフォルトでは、受信したすべてのメッセージを記録したいと思います。ただし、上記のスクリプトでは、SMS_1_NUMBER SMS_1_TEXTのみを取得できます。この変数に保存された値をどのように取得できますか?

ベストアンサー1

あなたのスクリプトはできます

env | grep -E '^SMS_.*_(NUMBER|TEXT)=' >>smslog.dat

または、

i=1

while [ "$i" -le "$SMS_MESSAGES" ]; do
    printf 'Message %d number = "%s"\n' "$i" "$( eval printf '%s' "\$SMS_${i}_NUMBER" )"
    printf 'Message %d text   = "%s"\n' "$i" "$( eval printf '%s' "\$SMS_${i}_TEXT" )"

    i=$(( i + 1 ))
done >>smslog.dat

smslog.dat正しい場所に書き込むには、cdスクリプトで正しいディレクトリを使用するか、smslog.datフルパスを指定してください。

おすすめ記事