Domanda

Ho il seguente codice che dovrebbe mettere i programmi avviabile in Bash.

if [ "`uname`" = "Darwin" ]; then
   compctl -f -x 'p[2]' -s "`/bin/ls -d1 /Applications/*/*.app
/Application:/*.app | sed 's|^.*/\([^/]*\)\.app.*|\\1|;s/ /\\\\ /g'`"                 
-- open
   alias run='open -a' 
fi

Tuttavia, non funziona nel mio Zsh a tutti. Posso aprire nessun programma con esso.

Un altro bug che si ha è che si apre tutti i programmi. Voglio avere solo programmi avviabile che i permessi è di 700.

Lo so che è possibile cercare questi programmi piuttosto bene da

 find -perm 700 -type f *.app

Tuttavia, non ho potuto ottenere il mio ritrovamento -command lavorare esattamente per ogni file di programma. Questo mi suggerisce che ci potrebbe essere un modo migliore per rendere i programmi avviabile nel terminale.

Come si fa a rendere i programmi avviabile in Zsh in Mac / Ubuntu?

È stato utile?

Soluzione

Come ti senti sugli alias al posto di completamento? Gli alias scheda ancora completa. Splitting attraverso le linee per rendere più facile la lettura ...

`print -l /Applications/**/MacOS/*(*f:700:) | 
grep -v "Contents.*Contents" | 
sed -e "s#\(.*/\)\([^./]*\)\(\.app\)\(.*\)#alias \2=\"\1\2\3\4\"#g"`

Le prime stampe ogni partita su una riga, la seconda rimuove sotto-pacchetti di un app, e l'ultimo genera il comando alias. Rimuovere le apici inversi per vedere e confermare i comandi che vengono generati.

[Modifica:] Questo viene eseguito il file eseguibile direttamente - se si preferisce utilizzare il metodo 'aperto blah.app', è possibile modificare la parte finale del comando sed per:

#alias \2=\"open \1\2\3\"#

Altri suggerimenti

Oh, zsh. Questo rende sempre le cose interessanti.

Ma ci sono alcune tecniche per fare il debug di questo genere di cose più facili. La prima cosa che vorrei è così allontanarsi dalla ls, e utilizzare find invece, dal momento che si desidera percorsi, elenchi non leggibili:

find . -executable -a -name \*.app

forse ....

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top