Ejecutando un montón de comandos en la Terminal

2

Ejecuto los siguientes comandos para logkext mucho en mi terminal y me gustaría conocer una manera de automatizar el Todo el proceso.

  1. Terminal abierta
  2. escriba "sudo logKextClient"
  3. Escriba la contraseña del administrador
  4. logKextClient tiene su propia contraseña que necesito escribir ahora
  5. logKextClient se está ejecutando ahora. el indicador es logKextClient >
  6. Tengo que escribir un comando aquí. "abierto"
  7. Entonces necesito cerrar una ventana que se abre. La ventana se titula out_logFile.txt. Normalmente se abre en TextEdit. No me importa que la fuerza lo deje. Como una copia del archivo se guarda en el escritorio.

Me gustaría poder hacer doble clic en algo y ejecutar la lista anterior de comandos / acciones sin problemas.

Muchas gracias por tus sugerencias.

    
pregunta Freckles 13.01.2014 - 03:49

3 respuestas

1

Pasé por el mismo proceso exacto cuando estaba jugando con logKext. El comando de Unix que quizás desee explorar es / usr / bin / expect.

Puede complicarse rápidamente, pero básicamente lo que hace es actuar como un mediador entre usted y los programas que está ejecutando, por lo que puede proporcionar respuestas que normalmente tendría que escribir. Como ejemplo, construí este script para poder automatizar el proceso de impresión del resultado logKext. Debe reconocer todos los comandos que normalmente escribe para logkextClient usted mismo ...

#!/usr/bin/expect -f
spawn logkextClient
expect "logKext Password:"
send "mylogkextpassword\r"
expect "logKextClient > "
send "print\r"
expect "logKextClient > "
send "quit\r"
close

De vuelta en 10.5 y 10.6, esto me funcionó bien para enviar la impresión logKext para poder canalizarla en un correo electrónico y enviarla. Sin embargo, estaba ejecutando este inicio de sesión como root para el terminal, por lo que era simple.

Teóricamente , si no iniciaste sesión como root, podrías decir

#!/usr/bin/expect -f
spawn sudo -k logkextClient
expect "Password:"
send “myrootpassword\r”
expect "logKext Password:"
send "mylogkextpassword\r"
expect "logKextClient > "
send "print\r"
expect "logKextClient > "
send "quit\r"
close

(tenga en cuenta que usé sudo -k intencionalmente para ser consistente y requerir una contraseña cada vez)

Por lo tanto, podría usar su editor de línea de comandos favorito para crear este script, hacer un chmod +x y arrastrarlo a la base para iniciar ... Teóricamente.

Pero he estado teniendo problemas con Mavericks para que / usr / bin / espere comportarse correctamente con sudo, por lo que esto no funciona para mí en otros scripts como debería. Y ya no tengo logKext instalado en absoluto para realizar pruebas.

Pero creo que esta es la dirección a la que debes dirigirte.

¡Buena suerte!

    
respondido por el Adam 29.04.2014 - 00:34
0

Puedes usar Automator para hacer esto. Las instrucciones son para Mavericks, pero la parte principal es la misma en todos los sistemas operativos.

  1. Open Automator
  2. Haz clic en "Nuevo documento"
  3. Seleccione "Flujo de trabajo"
  4. Haga clic en "Grabar" (puede pedirle que otorgue permiso, haga clic en "Abrir preferencias del sistema")
  5. Realice todas las acciones que desea que haga
  6. Haz clic en el botón de parada
  7. guardar el flujo de trabajo

Ahora, cuando desee que realice esas acciones, simplemente abra el flujo de trabajo.

    
respondido por el Rajiv 13.01.2014 - 04:25
0

Yo sugiero usar AppleScript. No puedo proporcionar el código real, solo una idea.

a) Terminal de lanzamiento: enlace

b) Dice a la Terminal que ejecute el comando: enlace

c) Dar privilegio de superusuario de Terminal: enlace

No estoy seguro de si (b) y (c) pueden combinarse perfectamente.

d) Cerrar la ventana / documento de edición de texto: enlace

    
respondido por el Shane Hsu 13.01.2014 - 10:11

Lea otras preguntas en las etiquetas