Isso aconteceu porque a saída que você produziu incluiu códigos que sua interface de terminal interpretou como códigos de controle.
Isso normalmente é resolvido com reset
ou stty sane
.
Atualmente, estou desenvolvendo uma estrutura de automação residencial para o meu apartamento. Isso envolve a obtenção de JSON em Serial de um Arduino. Quando o JSON não pode ser analisado (geralmente apenas na inicialização), eu o registro como um erro.
Hoje algo estranho aconteceu, porém, o JSON quebrado fez com que um dos meus terminais ficasse estranho.
[nodemon] restarting due to changes...
[nodemon] starting 'node build/server'
sensor living-room-humidity on serial:arduino-master:42
sensor living-room-temperature on serial:arduino-master:42
sensor living-room-motion on serial:arduino-master:42
sensor living-room-brightness on serial:arduino-master:42
sensor kitchen-humidity on serial:arduino-master:43
sensor kitchen-temperature on serial:arduino-master:43
sensor kitchen-motion on serial:arduino-master:43
sensor kitchen-brightness on serial:arduino-master:43
listening on http://127.0.0.1:50000
serial opened: arduino-master
serial error can't parse JSON: S≤┼├▒│E⎼⎼⎺⎼: U┼e│⎻ec├ed ├⎺┐e┼
⎽e⎼☃▒┌ d☃⎽c⎺┴e⎼ed: /de┴/├├≤USB▮
/#Y⎼dB▒±dPSX2≤TB☃8AAAA c⎺┼┼ec├ed
/#Y⎼dB▒±dPSX2≤TB☃8AAAA ▒┤├▒e┼├☃c▒├ed
[┼⎺de└⎺┼] ⎼e⎽├▒⎼├☃┼± d┤e ├⎺ c▒▒┼±e⎽↓↓↓
[┼⎺de└⎺┼] ⎽├▒⎼├☃┼± ◆┼⎺de b┤☃┌d/⎽e⎼┴e⎼◆
⎽e┼⎽⎺⎼ ┌☃┴☃┼±↑⎼⎺⎺└↑▒┤└☃d☃├≤ ⎺┼ ⎽e⎼☃▒┌:▒⎼d┤☃┼⎺↑└▒⎽├e⎼:42
⎽e┼⎽⎺⎼ ┌☃┴☃┼±↑⎼⎺⎺└↑├e└⎻e⎼▒├┤⎼e ⎺┼ ⎽e⎼☃▒┌:▒⎼d┤☃┼⎺↑└▒⎽├e⎼:42
⎽e┼⎽⎺⎼ ┌☃┴☃┼±↑⎼⎺⎺└↑└⎺├☃⎺┼ ⎺┼ ⎽e⎼☃▒┌:▒⎼d┤☃┼⎺↑└▒⎽├e⎼:42
⎽e┼⎽⎺⎼ ┌☃┴☃┼±↑⎼⎺⎺└↑b⎼☃±▒├┼e⎽⎽ ⎺┼ ⎽e⎼☃▒┌:▒⎼d┤☃┼⎺↑└▒⎽├e⎼:42
⎽e┼⎽⎺⎼ ┐☃├c▒e┼↑▒┤└☃d☃├≤ ⎺┼ ⎽e⎼☃▒┌:▒⎼d┤☃┼⎺↑└▒⎽├e⎼:43
⎽e┼⎽⎺⎼ ┐☃├c▒e┼↑├e└⎻e⎼▒├┤⎼e ⎺┼ ⎽e⎼☃▒┌:▒⎼d┤☃┼⎺↑└▒⎽├e⎼:43
⎽e┼⎽⎺⎼ ┐☃├c▒e┼↑└⎺├☃⎺┼ ⎺┼ ⎽e⎼☃▒┌:▒⎼d┤☃┼⎺↑└▒⎽├e⎼:43
⎽e┼⎽⎺⎼ ┐☃├c▒e┼↑b⎼☃±▒├┼e⎽⎽ ⎺┼ ⎽e⎼☃▒┌:▒⎼d┤☃┼⎺↑└▒⎽├e⎼:43
┌☃⎽├e┼☃┼± ⎺┼ ▒├├⎻://127↓▮↓▮↓1:5▮▮▮▮
⎽e⎼☃▒┌ ⎺⎻e┼ed: ▒⎼d┤☃┼⎺↑└▒⎽├e⎼
⎽e⎼☃▒┌ d☃⎽c⎺┴e⎼ed: /de┴/├├≤USB▮
⎽e⎼☃▒┌ e⎼⎼⎺⎼ c▒┼'├ ⎻▒⎼⎽e JSON: π"☃d":42←"b⎼☃±▒├┼e⎽⎽":126←"└⎺├☃⎺π"☃d":42←"b⎼☃±▒├┼e⎽⎽":125←"└⎺├☃⎺┼":▮←"├e└⎻e⎼▒├┤⎼e":23↓8▮←"▒┤└☃d☃├≤":29 S≤┼├▒│E⎼⎼⎺⎼: U┼e│⎻ec├ed ├⎺┐e┼ ☃
/#5┌9⎻PA°2P└_└┐c_WAAAA c⎺┼┼ec├ed
/#5┌9⎻PA°2P└_└┐c_WAAAA ▒┤├▒e┼├☃c▒├ed
/#5┌9⎻PA°2P└_└┐c_WAAAA d☃⎽c⎺┼┼ec├ed
/#▒▒73J1G⎺CK↑▒XdVbAAAB c⎺┼┼ec├ed
/#▒▒73J1G⎺CK↑▒XdVbAAAB ▒┤├▒e┼├☃c▒├ed
/#▒▒73J1G⎺CK↑▒XdVbAAAB d☃⎽c⎺┼┼ec├ed
/#├┌7⎺°_▒R6FDON─┐HAAAC c⎺┼┼ec├ed
/#├┌7⎺°_▒R6FDON─┐HAAAC ▒┤├▒e┼├☃c▒├ed
/#├┌7⎺°_▒R6FDON─┐HAAAC d☃⎽c⎺┼┼ec├ed
/#┤_Q┬├XdLW1└C▒Z⎻8AAAD c⎺┼┼ec├ed
/#┤_Q┬├XdLW1└C▒Z⎻8AAAD ▒┤├▒e┼├☃c▒├ed
/#┤_Q┬├XdLW1└C▒Z⎻8AAAD d☃⎽c⎺┼┼ec├ed
/#3☃┐R±°_⎼E⎻☃Q┼K┘▒AAAE c⎺┼┼ec├ed
/#3☃┐R±°_⎼E⎻☃Q┼K┘▒AAAE ▒┤├▒e┼├☃c▒├ed
Eu sei que isso provavelmente pode ser corrigido apenas reiniciando o shell, mas ainda assim quero entender por que isso acontece e (se possível) impedir que isso aconteça novamente .
Outro remédio comum para esse problema é digitar Ctrl-V Ctrl-O no prompt do shell. O primeiro coloca o shell no modo "literal" para que ele não modifique o seguinte caractere, que é o comando de reset do terminal, entendido por quase todos os tipos de terminal comuns.
Talvez seja necessário echo
, em alguns terminais.
Tags command-line binary terminal