Perché non riesco ad aprire facilmente i browser Web dall'applicazione terminale?

1

Per eseguire Chrome dall'applicazione Terminale, devo fare

open -a "Google Chrome" index.html

piuttosto che qualcosa come "chrome index.html".

Lo stesso vale anche per Firefox.

Non è perché non posso aprire alcuna applicazione GUI dalla riga di comando. Ad esempio, posso fare mate . per aprire TextMate.

Qual è la logica per i browser Web che non hanno un comando come "chrome index.html"?

    
posta Andrew Grimm 30.03.2015 - 00:39
fonte

2 risposte

2

Per aprire un'applicazione dal terminale deve trovarsi in uno dei percorsi della variabile $PATH environnement.

Di default /Application/ in cui si trova Chrome non è nel tuo percorso. Pertanto non è possibile avviare un'applicazione senza fornire il percorso completo alla propria app.

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome http://google.com

Funzionerà.

    
risposta data 30.03.2015 - 01:08
fonte
4

Probabilmente è sicuro dire che la maggior parte degli utenti Mac non apre le applicazioni GUI tramite la CLI, motivo per cui la maggior parte delle app della GUI non include il supporto CLI come fa TextMate. In altre parole, TextMate include in realtà un eseguibile binario chiamato mate che è installato in $PATH , motivo per cui non è necessario preordinarlo con il comando open come aprire un'app GUI che non include quel tipo di Supporto CLI.

Se vuoi emulare tale comportamento, crea uno script chiamato chrome inserito in $PATH , tipicamente /usr/local/bin/ per qualcosa di simile.

Esempio:

#!/bin/bash

if [ -n "$1" ]; then
    open -a "Google Chrome" "$1"
else
    open -a "Google Chrome"
fi

Salva il codice sopra in un file di testo semplice chiamato chrome e rendilo eseguibile da:

chmod +x chrome

Quindi puoi avviare Google Chrome tramite CLI di chrome o chrome URL dove URL è formattato correttamente se non solo un nome file in $PWD .

    
risposta data 30.03.2015 - 01:20
fonte

Leggi altre domande sui tag