Вопрос можно счесть академическим, если бы не склероз.

Опять забыл про эту засаду, попытался использовать в наспех написанном скрипте алиас alert после долгой конвертации видео ffmpeg'ом, а оно не работает.
По исходной идее отцов-основателей, заранее заготовленные алиасы предназначены для ускорения/упрощения работы в консоли. Но чем, по сути, одноразовый скриптик отличается от набора команд в консоли? Только большим удобством в отладке, если что пошло не так. К тому же он останется на память, как в моем кейсе — раз-другой в год записываю вебинары по работе — граблю окно через OBS Studio и конвертирую потом в avi, чтобы могли посмотреть коллеги, которым нужно, но поучаствовать в онлайне не смогли. Операция долгая, как и последующее заливание видосика на работу. И хочется получать уведомление об окончании.
Оно, конечно, можно скопипастить определение алиаса в скрипт, но захотелось таки разобраться с этой засадой.
Причина-то понятна:
Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is set using shopt (see the description of shopt under SHELL BUILTIN COMMANDS below).
Но — прямо тут же и подсказано лекарство:
... unless the expand_aliases shell option is set using shopt
Не работает.
Ок, пробую добавить алиас прямо в этом скрипте после установки опции
expand_aliases. Этот алиас работает, а прописаннные в .bashrc — нет.
В интернетах находится множество советов добавить
sourse ~/.bashrc, что выглядит разумным (повторно назначить прописанные там определения алиасов). Но тоже не работает.
Это лыжи не едут, или я... гм... с особенностями?
#!/bin/bash
shopt -s expand_aliases
source ~/.bashrc
echo "Просмотр alias 1:"
alias # не выводит ничего
echo
alias ls_test="ls -l"
echo "Просмотр alias 2:"
alias # выводит один алиас «ls_test»
echo; echo "Запуск ls_test:"
ls_test # работает
echo; echo "Запуск alert:"
alert "Шо за нафиг?" # не работает
Вывод:
$ ./test.sh
Просмотр alias 1:
Просмотр alias 2:
alias ls_test='ls -l'
Запуск ls_test:
итого 4
-rwxrwxr-x 1 onotole onotole 395 мар 19 13:00 test.sh
Запуск alert:
./test.sh: строка 17: alert: команда не найдена
То есть, совет из man bash — установить опцию — как бы правильный, но на вставленный через
source код не распространяется. Таки лыжи не едут? При таком поведении опция выглядит полностью бессмысленной.