Un alias influenza un altro alias?


14

Non ho ancora impostato molti alias nel mio file .bash_aliases. Solo di recente ho scoperto quanto possano essere utili.

Riesco a vedermi agganciato agli alias, quindi prima che il file diventi troppo ingombrante, vorrei chiarire qualcosa facendo una domanda molto semplice. Un alias influisce su un altro o l'alias torna sempre al comando originale?

Un esempio può rendere questo più chiaro:

Ho fatto un lsaliasing per ls -lF. Diciamo che mi piacerebbe anche fare lo pseudonimo ddi ls -l | grep -E "^d": dora utilizza ls -lFal posto di ls? In tal caso, è una questione di ordine nel file di configurazione .bash_aliases?

man alias non mi ha illuminato.

Risposte:


20

Dagli alias (sezione 6.6 del manuale di Bash) :

La prima parola di ogni semplice comando, se non quotata, viene controllata per vedere se ha un alias. In tal caso, tale parola è sostituita dal testo dell'alias.

Ciò accade quando si utilizza l'alias, non quando lo si definisce. Ecco un esempio:

$ alias a1='a2 hello'
$ alias a2='echo'
$ a1
hello
$ unalias a2
$ a1
bash: a2: command not found

1
OK fantastico, grazie per quell'esempio (e anche per il link al Manuale di Bash). Cito dal manuale: "Le regole relative alla definizione e all'uso degli alias sono alquanto confuse ... Per quasi tutti gli scopi, le funzioni della shell sono preferite agli alias." Immagino che farei meglio a imparare come fare le funzioni della shell allora. :)
boehj,

1
Sì. Gli alias possono farti risparmiare un po 'di battitura per i comandi più comuni, ma per qualsiasi cosa anche scrivere in remoto funzioni personalizzate per gestirlo è di solito un'opzione migliore.
Caleb,

@Caleb @Gilles - Grazie gente. A proposito, ls = 'ls --color' Vedo che è molto utile. Adoro questo sito. :)
boehj,

2
@boehj: una regola empirica è quella di utilizzare un alias quando si desidera avere argomenti automatici per un comando, usando il nome del comando o una variazione minore, e funzioni diversamente. Quindi alias ls='ls --color', alias cp='cp -i'ma funziona per cose più complesse. In particolare, farei duna tua funzione in modo che tu possa passare argomenti ls. [commento ripubblicato per risolvere il confuso cervello, grazie @cjm]
Gilles 'SO- smetti di essere malvagio'

@Gilles - OK, il mio compito per oggi è insegnarmi come replicare dcome funzione di shell.
Boehj,
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.