La réponse simple pour vous est que les scripts créent des shells non interactifs et que, par défaut, l'option expand_aliases est souvent désactivée.
Vous pouvez corriger cela très simplement en ajoutant la ligne suivante au début de votre script pour activer l'expansion des alias :
shopt -s expand_aliases
Ce problème m'a tracassé, j'ai donc fait des recherches et j'ai écrit un article de blog une fois que j'ai trouvé comment le résoudre moi-même : Article sur l'utilisation des alias dans les scripts shell Linux.
Bien sûr, juste après avoir trouvé cette partie, j'ai découvert que, bien que cela fonctionne pour ce dont vous avez besoin, cela ne fonctionnera pas si vous avez un sous-shell dans un sous-shell. Je suis toujours à la recherche d'une solution à ce problème, c'est pourquoi je viens de tomber sur votre question. Sur le billet de blog, je mentionne un hack bon marché que j'utilise pour récupérer l'alias dans un shell script. Ce n'est pas élégant, mais cela fonctionne même dans ce problème de sous-shells multiples que j'ai.