Creare un collegamento globale per eseguire le applicazioni della riga di comando


29

Quali passaggi sono necessari per eseguire un programma da riga di comando tramite un collegamento globale?

Ho impostato Automator per creare un nuovo Run Shell Script e ho provato ad assegnare una scorciatoia in Preferenze di Sistema -> Tastiera -> Scorciatoie da tastiera, ma non è successo nulla.


1
La mia domanda è diversa. Non voglio affatto aprire una finestra terminale.
buffer z

1
Se non vuoi aprire affatto una finestra Terminale, stai chiedendo la stessa cosa del post collegato.
Daniel

Risposte:


8

Applicarlo:

do shell script "ls ~/Desktop"

Aggiungi quello che vuoi lì, quindi puoi eseguire l'Applescript tramite un'applicazione di tasto di scelta rapida globale. Consiglierei Spark

Oh, e non so come assegnare un collegamento tramite Preferenze di Sistema


Bingo. Strana questa funzionalità non è già integrata in OSX. Grazie mille!
Adam Flott,

@Adam Sì, è un po 'strano.
daviesgeek,

8
Tranne che è integrato in OS X tramite Automator Services, @AdamFlott, è solo che la risposta che hai accettato non utilizza quel metodo.
Daniel

2
Inoltre, AppleScript e Automator fanno parte di OS X.
Daniel

1
-1 per l'utilizzo di terze parti senza alcun buon ragionamento.
Cregox,

32

Senza conoscere i dettagli di ciò che stai cercando, suggerirei di creare un nuovo servizio tramite Automator . I servizi possono essere associati ai trigger di battitura e possono eseguire script di shell (tra le altre cose). inserisci qui la descrizione dell'immagine

Per impostare la scorciatoia da tastiera, vai su Preferenze di Sistema -> Tastiera -> Scorciatoie -> Servizi, seleziona il servizio che hai appena salvato, quindi fai clic sul pulsante "Aggiungi scorciatoia".


Non mi è chiaro dopo aver salvato il servizio su come impostare una scorciatoia da tastiera.
Liron Yahdav,

@LironYahdav Vedi sopra modifica
Daniel

12

FastScripts include tutti gli script in ~ / Library / Scripts /, quindi non è necessario aggiungere file manualmente. Supporta anche script specifici dell'applicazione.

Altre applicazioni che possono essere utilizzate per assegnare collegamenti per l'esecuzione di script:

Puoi anche creare un servizio Automator:

  1. Apri Automator e scegli il modello di servizio
  2. Aggiungi un'azione Run Shell Script o Run AppleScript
  3. Verificare che il tipo di input e l'ambito dell'applicazione siano corretti
  4. Incolla lo script e salva il servizio
  5. Assegna un collegamento nel riquadro delle preferenze della tastiera

C'è un bug in 10.7 e 10.8 in cui le scorciatoie per i servizi non funzionano sempre fino a quando il menu dei servizi non viene mostrato dalla barra dei menu. Le scorciatoie per i servizi non funzionano quando l'applicazione in primo piano non ha una barra dei menu o un menu dei servizi. C'è anche un breve ritardo prima dell'esecuzione dei servizi.


più uno per menzionare anche altre app che lo fanno. Sono quasi andato a installare Spark quando ho già usato QuickSilver. Non sapevo che avesse quell'opzione.
Marlon,

inoltre, la sezione nel riquadro "Preferenze tastiera" per aggiungere un collegamento sarà nella sezione "Servizi", se si utilizza l'approccio Automator.
Brad Parks,

7

Ho provato tutte queste opzioni, ma sono troppo complesse e inaffidabili o molto costose. Così ho finito per scrivere la mia soluzione (open source e gratuita).

iCanHazShortcut

Non può fare molto in questo momento, ma è un inizio. Sentiti libero di contribuire aggiungendo richieste di funzionalità e suggerimenti.


1
Sto provando a trovare una soluzione semplice per questo problema da alcune ore e la tua applicazione è l'unica che funziona e fa quello che dovrebbe fare senza campane e fischi complicati. Grazie!
Stijn Martens,

@StijnMartens siete i benvenuti! Questa è l'idea alla base: se hai solo bisogno di una scorciatoia per un comando, ottieni una scorciatoia per un comando. Niente di più, niente di meno.
deseven,

Questo ha funzionato magnificamente.
Brian Schermerhorn,

2

Quicksilver può essere utilizzato per associare tasti di scelta rapida alle azioni.

Se ti ritrovi a fare qualcosa di frequente, puoi velocizzare ulteriormente l'attività assegnandole un "trigger". I trigger possono essere attivati ​​tramite scorciatoie da tastiera o movimenti del mouse

Se si desidera eseguire un comando Unix o uno script shell, questo post Stackoverflow fornisce ulteriori informazioni sull'uso del "Modulo terminale" di Quicksilver.


1

Aggiungerò la mia risposta qui usando BTT , poiché è facile e può effettivamente essere associato direttamente a uno script da riga di comando:

  1. Seleziona Tastiera da BTT

Seleziona Tastiera da BTT

  1. Inserisci il tuo collegamento (o sequenza di tasti!)

Inserisci il tuo collegamento (o sequenza di tasti!)

  1. Seleziona "Attiva azione predefinita" e digita "shell" per trovare l'azione.

Seleziona "Attiva azione predefinita" e digita "shell" per trovare l'azione.

  1. È possibile incollare lo script e la shell in cui si desidera eseguire:

È possibile incollare lo script e la shell in cui si desidera eseguire:

Fai clic su Salva e hai finito! Ora prova il tuo script con il trigger da tastiera che hai impostato.

  1. EXTRA: potresti voler aggiungere note per ricordare a cosa serve il collegamento ...

Potresti voler aggiungere note per ricordare a cosa serve il collegamento ...


Grazie, ho finito per seguire questa strada da quando ho BTT.
Leo Ufimtsev, il

0

Sembra che questo fosse disponibile in 10.6, (vedi http://hints.macworld.com/article.php?story=20090903085255430 ) ma qualcosa si è rotto in 10.7.2 (e forse in precedenza 10.7)

Ho scoperto, tuttavia, che la scorciatoia da tastiera Servizi è onorata quando Preferenze di Sistema è in primo piano, ma non in qualsiasi altra applicazione, incluso Finder.

Tuttavia, il suggerimento precedente di utilizzare Spark ha funzionato perfettamente in Lion, tranne per il fatto che non potevo usare Ctrl nella mia scorciatoia da tastiera. (non uno showtopper!)


solo quando il menu dell'applicazione è attivo. Se fai clic sul desktop e provi il collegamento, non funziona. fai clic sul menu per trovare, quindi provalo e funziona. Ho un servizio per Terminal che ha un collegamento e si presenta su tutte le app ... ma non funziona se non sono all'interno di un'app e anche allora il menu deve essere attivo.
Marlon,

@Lri anche dopo aver effettuato il log-in e il back-in, riavviato la macchina, ecc. Ancora non funziona se non faccio come ho descritto sopra. L'impostazione in Quicksilver funziona però. Vorrei sapere come mai QuickSilver può catturare quelle scorciatoie "globali" e non il sistema operativo.
Marlon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.