Если оболочку просят выполнить, вероятно, бесполезную ( или частично бесполезную ) команду, о которой известно, что она завершается, например cat hugeregularfile.txt > /dev/null, может ли она пропустить выполнение этой команды ( или выполнить, скажем, более дешевый эквивалент touch -a hugeregularfile.txt )?
В более общем смысле, похожа ли оболочка на компиляторы C в том, что она может выполнять любое преобразование исходного кода, если наблюдаемое извне поведение выглядит так, как если бы его анализировала абстрактная машина?
РЕДАКТИРОВАТЬ
Nota Bene: У моего вопроса, который был задан изначально, был заголовок, в котором спрашивалось, разрешена ли оболочка для выполнения этих оптимизаций, а не должна ли она или даже существуют ли реализации, которые могут их выполнять. Я интересуюсь теорией больше, чем практикой, хотя оба приветствуются.
catон имеет большое значение. Оболочка может узнать, что файл является устройством, но он не обязательно должен быть надежным.
wc, например). Но, насколько мне известно, POSIX не занимает позицию по оптимизации оболочки; Или это?
ksh. Как будто они говорят не отдельный процесс, а среду оболочки, позволяющую оптимизировать сохранение ветвлений.