Z podręcznika bash
Zasady dotyczące definiowania i używania aliasów są nieco mylące. Bash zawsze czyta co najmniej jeden pełny wiersz danych wejściowych przed wykonaniem dowolnego polecenia w tym wierszu. Aliasy są rozszerzane po odczytaniu polecenia, a nie podczas jego wykonywania. Dlatego definicja aliasu pojawiająca się w tym samym wierszu, co inne polecenie, nie obowiązuje, dopóki nie zostanie odczytany następny wiersz danych wejściowych. Nowy alias nie wpływa na polecenia następujące po definicji aliasu w tym wierszu. To zachowanie jest również problemem podczas wykonywania funkcji. Aliasy są rozszerzane, gdy odczytywana jest definicja funkcji, a nie podczas wykonywania funkcji , ponieważ sama definicja funkcji jest poleceniem złożonym. W konsekwencji, aliasy zdefiniowane w funkcji są dostępne dopiero po wykonaniu tej funkcji . Dla bezpieczeństwa zawsze umieszczaj definicje aliasów w osobnym wierszu i nie używaj aliasu w poleceniach złożonych.
Dwa zdania „Aliasy są rozszerzane, gdy odczytywana jest definicja funkcji, a nie podczas wykonywania funkcji” oraz „Aliasy zdefiniowane w funkcji są dostępne dopiero po wykonaniu tej funkcji” wydają się być sobie przeciwne.
Czy potrafisz wyjaśnić, co one oznaczają?
.bashrc
plikach na samej górze.