Se for solicitado a um shell que execute um comando provavelmente inútil ( ou parcialmente inútil ) conhecido por terminar, como, por exemplo cat hugeregularfile.txt > /dev/null
, ele pode pular a execução desse comando ( ou executar um equivalente mais barato, por exemplo touch -a hugeregularfile.txt
)?
De maneira mais geral, o shell é semelhante aos compiladores C, pois pode executar qualquer transformação no código-fonte, desde que o comportamento observável externamente seja como se a máquina abstrata o avaliasse?
EDITAR
Nota Bene: Minha pergunta, como originalmente colocada, tinha um título que perguntava se o shell tem permissão para fazer essas otimizações, não se deveria ou mesmo se existem implementações que possam fazê-las. Estou mais interessado na teoria do que na prática, embora ambas sejam bem-vindas.
cat
ting faz uma grande diferença. O shell pode saber que o arquivo é um dispositivo, mas não precisa ser confiável.
wc
, por exemplo). Mas, até onde sei, o POSIX não se posiciona sobre a otimização de shell; Ou faz?
ksh
. Como se não dissessem processo separado, mas ambiente de subcamação para permitir otimizações de economia de forquilha.