Я определил функцию оболочки (назовем это clock
), которую я хочу использовать в качестве оболочки для другой команды, аналогичной функции time
, например clock ls -R
.
Моя функция оболочки выполняет некоторые задачи и затем завершается с помощью exec "$@"
.
Мне бы хотелось, чтобы эта функция работала даже со встроенными оболочками, например, clock time ls -R
должно выводить результат встроенного time
, а не исполняемый файл /usr/bin/time
. Но exec
всегда заканчивается тем, что запускает команду.
Как я могу заставить мою функцию Bash работать как оболочка, которая также принимает встроенные модули оболочки в качестве аргументов?
Редактировать: я только что узнал, что time
- это не встроенная функция Bash, а специальное зарезервированное слово, связанное с конвейерами. Я все еще заинтересован в решении для встроенных модулей, даже если оно не работает со time
, но более общее решение было бы еще лучше.