Вы не понимаете, что на самом деле делает su
: вы надеетесь, что он просто обманет пользователя, когда он начнет новый процесс. Вы можете управлять им с помощью ps
в интерактивном сеансе: вы видите исходную оболочку, команду su
, новую оболочку, запущенную su
, и текущую команду ps
.
в качестве оболочки Функция является локальной для оболочки, ее нельзя использовать в (грандиозной) дочерней оболочке.
Лучшее, на что вы можете надеяться, - это передать что-то через окружение. Я знаю, что псевдонимы могут быть там неуверенными для функций. Более того, это абсолютно зависит от оболочки и не может быть переносимым.