З посібника з баш
Правила щодо визначення та використання псевдонімів дещо заплутані. Bash завжди читає щонайменше один повний рядок введення, перш ніж виконувати будь-яку команду в цьому рядку. Псевдоніми розгортаються, коли команда читається, а не коли вона виконується. Тому визначення псевдоніму, що з’являється в тому ж рядку, що й інша команда, не набирає чинності, поки не буде прочитаний наступний рядок введення. Команди, що відповідають визначенню псевдоніму в цьому рядку, не впливають на новий псевдонім. Така поведінка також є проблемою при виконанні функцій. Псевдоніми розширюються при зчитуванні визначення функції, а не при виконанні функції , оскільки визначення функції саме по собі є складною командою. Як наслідок, псевдоніми, визначені у функції, доступні лише після того, як ця функція буде виконана . Щоб бути безпечним, завжди ставте визначення псевдонімів в окремий рядок і не використовуйте псевдоніми у складених командах.
Два речення "Псевдоніми розширюються, коли читається визначення функції, а не тоді, коли функція виконується" та "Псевдоніми, визначені у функції, недоступні, поки після виконання цієї функції" здаються суперечать один одному.
Чи можете ви пояснити, що вони означають відповідно?
.bashrc
файлах у самому верху.