Lo que describe funciona igual en Zsh que en Bash. Desde el manual :
Un comando simple es una secuencia de asignaciones de parámetros opcionales seguidas de palabras separadas por espacios en blanco, con redirecciones opcionales intercaladas. La primera palabra es el comando a ejecutar, y las palabras restantes, si las hay, son argumentos para el comando.
Si se da un nombre de comando, las asignaciones de parámetros modifican el entorno del comando cuando se ejecuta. (…)
... y en Bash :
Cuando se ejecuta un comando simple, el shell realiza las siguientes expansiones, asignaciones y redirecciones, de izquierda a derecha.
- Las palabras que el analizador ha marcado como asignaciones de variables (las que preceden al nombre del comando) y las redirecciones se guardan para su procesamiento posterior.
...
Si no aparece ningún nombre de comando, las asignaciones de variables afectan el entorno de shell actual. De lo contrario, las variables se agregan al entorno del comando ejecutado y no afectan al entorno de shell actual
TEST=5 echo $TEST
, pero ahora he descubierto que no funciona ni en zsh ni en bash (no produce nada). En zsh,echo
está integrado y puede explicar por qué no funciona; Sin embargo, ¿qué pasa en caso de bash?