LUK
22-06-2004, 08:45
La introducción de conectores que posibilitan el pase de objetos en lugar de solamente líneas de texto de un programa o comando a otro, constituye la principal mejora de la veterana línea de comandos, en su encarnación para la plataforma Windows.
Después de años sin introducir cambios notables en el intérprete de comandos de sus sistemas operativos, Microsoft ultima los detalles de Monad, el nombre en clave que recibe MSH y que podemos interpretar como Microsoft Shell.
El cambio más notable respecto a versiones anteriores de la línea de comandos como pueden ser COMMAND.COM o CMD.EXE se produce en lo que técnicamente se llaman pipes (tuberías en inglés). Tradicionalmente, estos elementos permiten concatenar diversos comandos y programas, haciendo que la salida de texto de uno pase a la entrada de texto del siguiente. El carácter que nos permite definir una pipe o tubería es la línea vertical | , de forma que si por ejemplo queremos realizar un listado de los ficheros de nuestra cuenta en un sistema Unix de forma que queden ordenados alfabéticamente, teclearemos:
# ls | sort
Las pipes son una herencia del mundo Unix, adaptadas por su potencia y versatilidad a la plataforma Windows.
Hasta ahora las entradas y salidas de los programas que se ejecutaban desde la línea de comandos se hacían esencialmente a través de streams (cadenas) de texto por tres lugares posibles: stdin, stdout y stderr (respectivamente entrada de datos, salida de resultados y salida de mensajes y códigos de error). La nueva versión de la shell de Microsoft permite dejar de lado la limitación de trabajar solamente con texto, permitiendo que las pipes trabajen con cualquier tipo de objeto que pueda ser definido como una clase de .NET con unos atributos especiales.
La principal ventaja de esta nueva facilidad se entiende mejor con un ejemplo práctico, acercándonos nuevamente al Unix para realizar una muestra comparativa de la superioridad del planteamiento de Microsoft: Si queremos realizar una utilidad en shell script que nos permita matar un proceso correspondiente a un programa determinado, daremos una orden kill dentro del script después de haber listado todos los procesos con ps e ido a buscar el PID del proceso que deseemos, realizando una serie de operaciones para aislar la línea donde se encuentra buscando por el nombre del programa, todas estas operaciones conectadas por pipes.
A partir de ahora, la shell será suficientemente “inteligente” para determinar con que tipo de datos de salida está trabajando, por lo que podríamos concatenar directamente la orden kill a la salida del proceso ps, ya que lo que se está listando ya no es solo texto, si no información relativa a procesos que el sistema entiende como tal.
La integración entre la línea de comandos y los elementos de la interfaz gráfica de usuario es otro de los objetivos que Microsoft persigue con su nueva shell.
Fuente: DiarioRed
Después de años sin introducir cambios notables en el intérprete de comandos de sus sistemas operativos, Microsoft ultima los detalles de Monad, el nombre en clave que recibe MSH y que podemos interpretar como Microsoft Shell.
El cambio más notable respecto a versiones anteriores de la línea de comandos como pueden ser COMMAND.COM o CMD.EXE se produce en lo que técnicamente se llaman pipes (tuberías en inglés). Tradicionalmente, estos elementos permiten concatenar diversos comandos y programas, haciendo que la salida de texto de uno pase a la entrada de texto del siguiente. El carácter que nos permite definir una pipe o tubería es la línea vertical | , de forma que si por ejemplo queremos realizar un listado de los ficheros de nuestra cuenta en un sistema Unix de forma que queden ordenados alfabéticamente, teclearemos:
# ls | sort
Las pipes son una herencia del mundo Unix, adaptadas por su potencia y versatilidad a la plataforma Windows.
Hasta ahora las entradas y salidas de los programas que se ejecutaban desde la línea de comandos se hacían esencialmente a través de streams (cadenas) de texto por tres lugares posibles: stdin, stdout y stderr (respectivamente entrada de datos, salida de resultados y salida de mensajes y códigos de error). La nueva versión de la shell de Microsoft permite dejar de lado la limitación de trabajar solamente con texto, permitiendo que las pipes trabajen con cualquier tipo de objeto que pueda ser definido como una clase de .NET con unos atributos especiales.
La principal ventaja de esta nueva facilidad se entiende mejor con un ejemplo práctico, acercándonos nuevamente al Unix para realizar una muestra comparativa de la superioridad del planteamiento de Microsoft: Si queremos realizar una utilidad en shell script que nos permita matar un proceso correspondiente a un programa determinado, daremos una orden kill dentro del script después de haber listado todos los procesos con ps e ido a buscar el PID del proceso que deseemos, realizando una serie de operaciones para aislar la línea donde se encuentra buscando por el nombre del programa, todas estas operaciones conectadas por pipes.
A partir de ahora, la shell será suficientemente “inteligente” para determinar con que tipo de datos de salida está trabajando, por lo que podríamos concatenar directamente la orden kill a la salida del proceso ps, ya que lo que se está listando ya no es solo texto, si no información relativa a procesos que el sistema entiende como tal.
La integración entre la línea de comandos y los elementos de la interfaz gráfica de usuario es otro de los objetivos que Microsoft persigue con su nueva shell.
Fuente: DiarioRed