Parece que você está tentando usar ttyS0
como meio de conectar dois processos. Isso não funcionará de forma confiável, pois ttyS0
é a interface para uma linha serial ( COM1:
no Windows-speak).
Por outro lado, pode ser que a informação esteja faltando na sua pergunta. Se você realmente tem um dispositivo em sua porta serial, por favor deixe isso claro.
O que eu acredito que você está procurando é um cachimbo. No sistema de arquivos, isso se parece muito com um arquivo, mas permite que dados gravados em um lado sejam lidos de outro. É o que está por trás dos bastidores do onipresente operador |
, como em, e. id | nl
.
Você pode criar um canal com o comando mkfifo
ou mknod p
se você insistir.
Terminal nº 1
mkfifo /tmp/pipe # Create the pipe
ls -l /tmp/pipe # Notice the first character is 'p'
echo hello > /tmp/pipe # Write to it
rm -f /tmp/pipe # Remove the pipe
Terminal nº 2
cat /tmp/pipe # Read from the other side of the pipe
Você pode estender o código do Terminal 2 como este. Lembre-se, no entanto, que para cada nova leitura (na verdade aberta / lida / fechada) no tubo você precisa fornecer dados novos.
read VAR </tmp/pipe # Read one line from the pipe
VAR=(cat /tmp/pipe) # Read from the pipe until EOF