Je voudrais envoyer la commande AT
à mon modem en utilisant un script shell et analyser le résultat afin de vérifier si l'OK est renvoyé. Quelle est la meilleure façon d'analyser la variable at1 et d'extraire "OK" ou "ERROR" dans le cas contraire?Envoi de la commande AT et résultat de l'analyse du modem
3
A
Répondre
1
Il est absolument possible d'envoyer des commandes AT à un modem et de capturer sa sortie à partir de la ligne de commande comme vous essayez de le faire, mais pas en utilisant simplement les scripts shell bash. C'est pourquoi j'ai écrit le programme atinout spécifiquement pour soutenir des scénarios comme vous demandez.
test comme suit:
MODEM_DEVICE=/dev/ttyUSB0
MODEM_OUTPUT=`echo AT | atinout - $MODEM_DEVICE -`
case $MODEM_OUTPUT
in
*OK*)
echo "Hurray, modem is up and running :)"
;;
*)
echo "Oh no! Something is not working :("
;;
esac
Si vous avez l'intention d'analyser la sortie de quelque façon plus sophistiqué, vous devez enregistrer au lieu de la sortie dans un fichier en donnant un nom au lieu du dernier -
et lire.
Vous ne pouvez pas envoyer de commande AT à partir de la ligne de commande normale à un modem. Vous devez utiliser quelque chose comme 'socat' ou' minicom' pour établir une connexion série avec le modem. Voir: [** Comment envoyer des commandes AT à un modem sous Linux? **] (http://unix.stackexchange.com/questions/97242/how-to-send-at-commands-to-a-modem- in-linux) –
Vous pouvez également utiliser [kermit] (http://www.kermitproject.org/). –
J'utilise minicom pour établir la connexion série avec la carte. Une fois le modem démarré, j'utilise microcom ou socat pour parler avec. Cependant, il est possible d'envoyer des commandes AT à travers cette interface en utilisant un simple écho, n'est-ce pas? – ogs