Esecuzione di un gruppo di comandi in Terminal

2

Eseguo i seguenti comandi per logkext molto nel mio terminale e vorrei sapere un modo per automatizzare il intero processo.

  1. Apri terminale
  2. digita "sudo logKextClient"
  3. Digita la password dell'amministratore
  4. logKextClient ha la sua password che ho bisogno di digitare ora
  5. logKextClient è in esecuzione ora. prompt è logKextClient >
  6. Devo digitare un comando qui. "Aperta"
  7. Quindi ho bisogno di chiudere una finestra che si apre. La finestra è intitolata out_logFile.txt. Solitamente si apre in TextEdit. Non mi dispiace che la forza lo abbandoni. Come una copia del file viene salvata sul desktop.

Mi piacerebbe essere in grado di fare doppio clic su qualcosa ed eseguire l'elenco sopra di comandi / azioni in modo impeccabile.

Molte grazie per i tuoi suggerimenti.

    
posta Freckles 13.01.2014 - 03:49
fonte

3 risposte

1

Ho ripassato esattamente lo stesso processo quando stavo giocando con logKext. Il comando unix che potresti voler esplorare è / usr / bin / expect.

Può diventare complesso rapidamente, ma fondamentalmente ciò che fa è agire da mediatore tra te e i programmi in esecuzione in modo che possa fornire risposte che normalmente dovresti digitare. Ad esempio, ho creato questo script per automatizzare il processo di stampa dell'output logKext. Dovresti riconoscere tutti i comandi che avresti normalmente scritto su logkextClient ...

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

Indietro in 10.5 e 10.6 questo ha funzionato bene per me per l'output della stampa logKext in modo che potessi inserirlo in una e-mail e inviarlo. Tuttavia, stavo eseguendo questo accesso come root per terminale, quindi era semplice.

Teoricamente , se non fossi loggato come root, potresti invece dire

#!/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

(nota che ho usato sudo -k intenzionalmente per essere coerente e richiedere una password ogni volta)

Quindi potresti usare il tuo editor di riga di comando preferito per creare questo script, creare un chmod +x e trascinarlo sul dock per l'avvio ... Teoricamente.

Ma ho avuto problemi con Mavericks che ha ottenuto / usr / bin / mi aspetto di comportarmi correttamente con sudo, quindi questo non funziona per me in altri script come dovrebbe. E non ho più logKext installato per testare comunque.

Ma penso che questa sia la direzione che potresti voler dirigere.

Buona fortuna!

    
risposta data 29.04.2014 - 00:34
fonte
0

Puoi usare Automator per fare questo. Le istruzioni sono per Mavericks, ma la parte principale è la stessa in tutti i sistemi operativi.

  1. Apri Automator
  2. Fai clic su "Nuovo documento"
  3. Seleziona "Flusso di lavoro"
  4. Fai clic su "Registra" (potrebbe chiederti di concedere l'autorizzazione, fai clic su "Apri le Preferenze di Sistema")
  5. Esegui tutte le azioni che vuoi che facciano
  6. Fai clic sul pulsante di interruzione
  7. Salva il flusso di lavoro

Ora, quando vuoi che esegua queste azioni, apri semplicemente il flusso di lavoro.

    
risposta data 13.01.2014 - 04:25
fonte
0

Suggerisco di usare AppleScript. Non sono in grado di fornire il codice vero e proprio, solo un'idea.

a) Terminale di lancio: link

b) Comunica al terminale di eseguire il comando: link

c) Attribuzione privilegio di super utente terminale: link

Non sono sicuro che (b) e (c) possano fondersi perfettamente.

d) Chiudi Testo Modifica finestra / documento: link

    
risposta data 13.01.2014 - 10:11
fonte

Leggi altre domande sui tag