În primul rând, pseudonimele sunt temporar si valabila numai pentru shell-ul care rulează în prezent. Când rulați alias.sh
fișier, se execută în cochilie proprie, nu în coaja din care a fost fugit. Deci sursele scriptului ~/.bash_aliases
(de ce acest fișier și nu /etc/.bash_aliases
? Am crezut că îl doriți pe cel din urmă?), dar odată ce scriptul se termină, shell-ul iese și orice alias ar fi putut fi definit în ~/.bash_aliases
dosar, au dispărut.
Asta e diferența dintre alergare un script shell și aprovizionare aceasta. Dacă rulați un script shell, acesta rulează în propriul shell, astfel încât orice modificări aduse mediului, alias-urilor și similare făcute în script nu afectează shell-ul părinte (shell-ul de la care a fost pornit scriptul). Dar atunci când sursați același script, acesta se execută în carcasa actuală, deci toate modificările pe care le face rămân după terminarea scriptului (desigur că rămân atâta timp cât shell-ul trăiește - dacă ieșiți din shell, toate modificările dispar din nou).
Ținând cont de acest lucru, dacă doriți aliasuri din fișier /etc/.bash_aliases
pentru a fi disponibil pentru orice utilizator în orice coajă pe care o rulează, fișierul trebuie să provină din /etc/bash.bashrc
fişier. Acest fișier este executat ori de câte ori pornește orice shell (de la orice utilizator) și este folosit în mod obișnuit pentru a seta mediul inițial.
Deci, dacă adăugați următoarea linie la sfârșitul /etc/bash.bashrc
(desigur că trebuie să o faci ca root, pentru a putea edita fișierul):
sursa /etc/.bash_aliases
ar trebui să obții ceea ce vrei.
The alias.sh
fișierul nu este deloc necesar.