システムに完全に依存しないようにするには、クロス プラットフォームのプログラミング言語を使用します。Python のように、pySerial のようなクロス プラットフォームのシリアル ライブラリを使用し、スクリプト内で処理を行います。私は pySerial を使用しており、ソース コードをほとんど変更することなく、クロス プラットフォームでスクリプトを実行できました。 BASH を使用することで、自分自身をかなり制限しています。
これはあなたが探しているものではありませんか?
while read -r line < /dev/ttyS2; do
# $line is the line read, do something with it
# which produces $result
echo $result > /dev/ttyS2
done
すべての行でシリアル デバイスを再度開くと何らかの副作用が生じる可能性があります。その場合は、以下を試すことができます:
while read -r line; do
# $line is the line read, do something with it
# which produces $result
echo $result > /dev/ttyS2
done < /dev/ttyS2
出力リダイレクトを移動することもできますが、stdout バッファリングをオフにする必要があると思います。