Preferisci script o alias bash per le scorciatoie? [chiuso]


8

Ho una ~/bindirectory (che è sulla mia PATH) in cui memorizzo molti piccoli script da 1 o 2 righe. Alcuni di loro semplicemente cdin una directory ed eseguono un comando su un file, come vimo qualcosa del genere. Ma ho anche molti alias nel mio .bash_aliasesfile che hanno lo stesso scopo.

Come decidi tra scrivere un piccolo script bash e scrivere un alias? Importa in che modo vai?


Risposte:


5

Se li uso abbastanza frequentemente da giustificare il sovraccarico di averli caricati in ogni shell. Li scriverò come funzioni.

Se sono specifici del progetto, potrei scriverli come un insieme di alias e funzioni che possono essere acquistati in una shell quando sto lavorando a quel progetto.

Solo se funzionano in modo autonomo, qualcosa viene trasformato in uno script nel mio ~ / bin. Ci sono alcuni liner che sono sostanzialmente alias, ma sono per l'esecuzione da luoghi diversi dalle shell (ad esempio, eseguire i prompt in altri programmi). Per la maggior parte devono essere script piuttosto sostanziosi.


1

In generale le funzioni di script di shell sono più flessibili degli alias e dovresti preferirle. Ad esempio, in un alias non è possibile verificare se il numero di argomenti forniti o i relativi tipi sono previsti. Concordo con Caleb sul fatto che gli alias si adattano bene ai semplici liner, ad esempioalias cp='cp -i'


1

Per qualcosa di più complicato di una sostituzione di stringa di un singolo comando, uno script è probabilmente più appropriato. Inoltre, tutto ciò che verrà utilizzato da altri script o potrebbe essere utilizzato da altre persone è probabilmente meglio come script. Mentre eseguire programmi dalla directory bin di qualcun altro non è una grande idea, è meglio che reperire il file dei singoli alias di qualcuno.

Gli alias sono i migliori per personalizzare il tuo ambiente interattivo. Ad esempio, e='emacs -nw'e quel genere di cose.


0

Uso l'approccio più semplice possibile.

Principalmente, se il comando non ha parametri, di solito uso alias.

Se il comando ha parametri utilizzo una funzione.

ad es. creazione e creazione di cd in una directory:

md () { [ $# = 1 ] && mkdir -p "$@" && cd "$@" || echo "Error - no directory passed!"; }

Uso anche una funzione se il comando utilizza una funzione installata che ha parametri

per esempio, aggiungendo -v a git:

git () { [ $1 = commit ] && command git commit -v "${@:2}" || command git "$@"; }
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.