Script Bash non trovato El Capitan

1

Ho creato uno script Bash che fa semplicemente ls -l .

In Mavericks e nelle vecchie versioni di OSX ho semplicemente creato un collegamento simbolico allo script e l'ho inserito nella cartella /usr/bin ( ln -s ll.sh /usr/bin/ll ) e quindi ho potuto eseguire lo script utilizzando ll da qualsiasi cartella.

Dall'aggiornamento a El Capitan non riesco a caricare questo script. Ho disabilitato SIP in modo tale da essere in grado di creare il collegamento simbolico e lo script è sicuramente eseguibile. La posizione ( /usr/bin ) è sicuramente nel $ PATH e ho anche provato ad aggiungere un percorso allo script nel $ PATH.

Nulla sembra funzionare, tutto quello che sto ottenendo è -bash: ll: command not found .

Ho riavviato il terminale dopo ogni aggiornamento al $ PATH e ho provato source ~/.bash_profile ma nessuno dei due sta facendo alcuna differenza.

Modifica: ho anche provato ad aggiungere la directory corrente degli script al $ PATH e anche questo mi dava lo stesso errore. Alla fine ho alias tutti i miei script in modo che funzionino.

    
posta Interbred Monkey 16.10.2015 - 16:17
fonte

2 risposte

1

Non sono sicuro di cosa non funzioni con il tuo setup, ma un modo diverso (forse migliore) per fare questa stessa cosa è tramite il comando alias di Bash. Al prompt dei comandi, digita:

alias ll="ls -l"

Quindi puoi semplicemente digitare ll e ottenere un elenco completo. Se desideri renderlo permanente, puoi inserirlo nel file .bashrc nella tua home directory, che puoi creare se non esiste già.

    
risposta data 17.10.2015 - 17:25
fonte
4

Basta leggere i commenti e vedere che stai cercando una soluzione generale, piuttosto che un esempio specifico. Lascerò la mia risposta precedente nel caso in cui aiuti qualcuno, ma ecco una soluzione più generale.

Il mio primo consiglio: lasciare /usr/bin da solo. Non c'è motivo di scherzare e ci sono molte ragioni per cui non non si scherza. Invece, aggiungi una directory da qualche altra parte, metti gli script lì e aggiungila alla variabile $PATH . Se vuoi questo solo per il tuo utente, potresti creare una directory scripts o bin nella tua home directory, oppure se vuoi che sia globalmente disponibile potresti metterla sotto /usr/local , ad es. /usr/local/scripts o /usr/local/bin . Quindi, nel file .bashrc nella tua home directory, aggiungi quanto segue:

export PATH=$PATH:~/scripts:/usr/local/scripts

Se preferisci che i comandi eseguano l'override di un comando di sistema (se hanno lo stesso nome), puoi fare quanto segue, invece:

export PATH=~/scripts:/usr/local/scripts:$PATH

Se si desidera questo set per tutti gli utenti, esiste un file /etc/bashrc globale a cui è possibile aggiungere sopra.

Per modificare il bashrc globale o modificare /usr/local hai bisogno dei privilegi root / admin.

    
risposta data 17.10.2015 - 17:39
fonte

Leggi altre domande sui tag