Я создал эту функцию doit для выполнения системных команд, скриптов и псевдонимов.
function doit {
doit_cmd=$*
if [[ $cmd_trace = "1" ]] then
echo "+ $doit_cmd"
fi
$doit_cmd
ret=$?
return $ret
}
Функция doit принимает командную строку (включая параметры команды). Сначала он выводит данную команду и ее параметры на стандартный вывод, а затем выполняет команду. Я выполняю команды в сценариях через функцию doit, чтобы отслеживать, какие команды выполняются. Строка «$doit_cmd» в приведенной выше функции doit прекрасно работает для системных команд и сценариев, но не работает, когда функции doit присвоен псевдоним.
Вот демонстрация проблемы.
$ псевдоним wi='whoami'
$ cmd_trace=1
$ doit whoami
+ whoami
корень
$ doit wi
+ wi doit[6]: wi: не найдено
Может ли кто-нибудь помочь мне в этой проблеме? Это ограничение?