telnet shell-script en Automator

0

En parte soy nuevo en Automator y, como no hay ninguna aplicación para Mac para controlar mi AVR de Pioneer, uso algunos comandos en la Terminal. Pero me gustaría automatizar algunos de mis comandos con el terminal. Tengo que decir que no sé mucho sobre la Terminal y las redes. Pero sé que no es tan fácil en Automator o en Xcode (con swift) como en la Terminal. En la Terminal utilizo este código:

telnet vsx-923.fritz.box.

Respuesta:

Trying 123.456.789.10...
Connected to vsx-923.fritz.box.
Escape character is '^]'.
BridgeCo AG Telnet server


vd //which means Volume down

Respuesta:

FL004D2E564F4C20202D33302E356442
VOL100

En Automator en el Shell-Script que escribí

telnet vsx-923.fritz.box.
vd

Donde obtuve el error "Conexión cerrada por un host extranjero". En un foro descubrí que tenía que usar echo Por eso recibo una respuesta ahora. Pero si escribo

telnet vsx-923.fritz.box.
echo 'vd'

Solo recibo la respuesta de que el avr está conectado, pero para el Volumen no recibo una respuesta.

Esperemos que en el futuro pueda construir una aplicación, pero por ahora será suficiente para hacerlo de esta manera. Espero que me puedas ayudar con la solución. Aquí puede obtener el PDF de los comandos pioneros si desea tenerlos. http://www.pioneerelectronics.com/StaticFiles/PUSA/Files/Home%20Custom%20Install/VSX-1120-K-RS232.PDF

Gracias por adelantado.

Jonas

Jonas Nelson
fuente

Respuestas:

0

Tu orden vd el envío obviamente requiere un CR-LF al final de la línea.

No recomendaría usar telnet, en su lugar, use netcat:

echo vd | nc -c vsx-923.fritz.box 23

nc -c envía CR-LF a la línea que termina.

Garex
fuente
Gracias por su respuesta. Funciona muy bien para mi. Pero, ¿qué significa CR-LF y esta letra: '|'?
Jonas Nelson
CR-LF = Retorno de carro - Avance de línea y '|' Es el símbolo de Unix Pipe.
Garex
@JonasNelson | canalizará la salida de un comando a la entrada del siguiente. Es algo así como el primer comando es nc -c vsx-923.fritz.box 23; seguido por vd, porque esa es la salida producida por echo vd. Para entenderlo mejor, intente escribir los comandos en cada lado de la tubería (también conocido como | ) por separado. Eso debería demostrar la relación.
tjt263
@JonasNelson también, estoy bastante seguro de que telnet Funcionaría bien para esto. Es posible que desee consultar con @Garex.
tjt263
Yo desaliento a telnet ya que es un tipo de desaprobación. U / PW se transmite al servidor de telnet en texto claro. Para eso, si tiene servicios para conectarse donde no necesita autorización de U / PW, también puede usar netcat. En segundo lugar, netcat ofrece más opciones en el manejo de conexiones con guión que Telnet, por ejemplo. separación de mensaje, errores y código de retorno (canal de salida 1 (= STDOUT) y canal 2 (STDERR) y $?). netcat es todavía más poderoso (ver man nc en su emulación de terminal favorita).
Garex
0

Incorporar Automator puede ser innecesario para lo que estás tratando de lograr. Tal vez sería más adecuado simplemente escribir un script de shell bash. Si nunca ha escrito un script de shell bash, es fácil comenzar. Simplemente puede escribir los comandos exactamente como ya ha demostrado, pero en algún tipo de editor de texto o software de bloc de notas, y guárdelo con un .sh extensión en el extremo.

Cuando empecé a aprender sobre estas cosas hace años, encontré nano para ser un editor de texto rápido y fácil para aprender y escribir nuevo material. Si quieres intentarlo, puedes comenzar simplemente escribiendo nano en la terminal

Si es necesario, puede otorgar permiso ejecutivo con:

chmod +x ./example.sh

Déjame saber si esto te ayuda a ponerte en el camino correcto o no. Si no, podemos intentar algo más. Además, si lo desea / necesita, puede responder aquí o contactarme de forma privada a través del chat.

tjt263
fuente
Lo probé con el .sh final, pero ¿cómo abro este archivo? Probé nano pero no me gusta de alguna manera. Lamentablemente, no me puso en el camino correcto :( Pero obtuve una solución de Garex. ¡Pero sin embargo, gracias!
Jonas Nelson
Si eres relativamente nuevo en la línea de comandos, probablemente no te va a gustar ninguno de sus editores de texto. Sin embargo, hay otros. nano es similar al original pico. Algunas alternativas populares son vi, vim &erio; emacs. Estos generalmente se consideran bastante potentes, pero pueden representar una curva de aprendizaje. Tu no tener usar alguna de estos. Tú puede utilizar alguna Aplicación de edición de texto GUI (es decir, TextEdit.app ) que permite guardar en texto plano. Para su información: esta opción debería estar disponible en el Format Menú desplegable.
tjt263
@JonasNelson Para ejecutar el script, solo debe poder hacer clic con el botón derecho (seleccionar Open With ) en el icono que crea. Por defecto nano guardará archivos en $HOME alias /Users/Jonas/, o algo similar. Este suele ser el directorio de trabajo predeterminado cuando abre Terminal.app. Por lo tanto, si / cuando está en el directorio donde se guarda el archivo * .sh, puede escribir: ./example.sh (tú debe incluir la . y el / anteponiendo el nombre del archivo) para ejecutarlo. Si lo guardó en otro lugar, como en su escritorio, por ejemplo, puede hacer: ./Desktop/example.sh, o simplemente, Desktop/example.sh, hacer lo mismo.
tjt263