Оболочки не выполняют никакой реорганизации передаваемого ими кода, они просто интерпретируются одна строка за другой (в интерпретаторе команд больше ничего не имеет смысла). Большая часть времени, проводимого оболочкой, уходит на лексический анализ / анализ / запуск вызываемых программ.
Для простых операций (таких, как те, что приводятся в примерах в конце вопроса), я был бы удивлен, если бы время загрузки программ не перекрывало ничтожные различия в скорости.
Мораль этой истории заключается в том, что если вам действительно нужно больше скорости, вам лучше использовать (полу) скомпилированный язык, такой как Perl или Python, который быстрее запускается для запуска, в котором вы можете написать многие из упомянутых операций. и не нужно вызывать внешние программы, и имеет возможность вызывать внешние программы или вызывать в оптимизированные модули C (или любые другие) для выполнения большей части работы. Вот почему в Fedora «сахар для системного администрирования» (по сути, GUI) написан на Python: может добавить приятный графический интерфейс без особых усилий, достаточно быстрый для таких приложений, иметь прямой доступ к системным вызовам. Если этого недостаточно, возьмите C ++ или C.
Но не ходите туда, если только вы не докажете, что выигрыш в производительности стоит потери гибкости и времени разработки. Скрипты оболочки не так уж плохи для чтения, но я содрогаюсь, когда вспоминаю некоторые скрипты, используемые для установки Ultrix, которые я однажды пытался расшифровать. Я сдался, слишком много «оптимизации сценариев оболочки» было применено.