BashスクリプトからLinuxシリアルポートに書き込む

BashスクリプトからLinuxシリアルポートに書き込む

こんにちは、私はラズベリーパイを使用しており、bashスクリプトでUSBシリアルポートに書き込もうとしています。私はechoが正しい方法であることがわかりました。また、書き込み中にポートが使用中かどうかをテストしたいと思います。だから私はこのスクリプトを使用しています。

#! /bin/bash
if  echo -e "USB Command" >> /dev/ttyACM0 ; then
    echo "Success"
else
    echo "Fail"
fi

しかし、問題は、そのポートにアクセスする権限がなくても常に成功することです。ポートに書き込むための最良の方法を使用していますか?書き込みの成功を確認する方法は?ありがとう

編集:これは出力です:

ls -l /dev/ttyACM0

crw-rw---- 1 root dialout 166, 0 Dec 13 16:38 /dev/ttyACM0

ベストアンサー1

スクリプトを確認してください。私の考えでは、あなたがしたいのは、echoコマンドの戻りコードをテストすることです。

たとえば、コマンドプロンプトでechoを実行した場合:

$ echo -e "USB Command" >> /dev/ttyACM0

終了したらすぐに戻りコードを確認してください。

$ echo $?
0

成功の可否を判断できるはずです。少なくとも正常にデータをttyにインポートしました。

戻りコード 0 は成功を示します。他のすべてはエラーであり、ゼロ以外のエラーコードを検索してみると、その意味がわかります。

手動で作業し、それをスクリプトに統合する方法を学びます。

おすすめ記事