Funcionamiento del código de PowerShell

Completado

Para ayudarle a comprender cómo funciona el código, necesitamos hablar de lo que es un programa. También es necesario explicar qué es un lenguaje de programación y cómo ese lenguaje comunica los comandos al equipo.

Nota:

Este ejercicio es opcional. Si desea completar este ejercicio, deberá crear una suscripción de Azure antes de comenzar. Si no tiene una cuenta de Azure o no quiere crear una en este momento, puede leer las instrucciones para que comprenda la información que se presenta.

¿Qué es un programa?

Un programa es un conjunto de instrucciones que realizan tareas de cálculo. Las instrucciones se compilan en un formato que el equipo puede entender y, a continuación, un usuario las ejecuta. Un usuario puede ser una persona u otro programa. El equipo ejecuta las instrucciones en orden, línea a línea, hasta que no haya más líneas que ejecutar o se le diga explícitamente al programa que se detenga.

Incluso el programa más básico realizará una o varias de las tareas siguientes:

  • Acepta la entrada de un origen. La entrada incluye información que:
    • Procede de un usuario que escribe en un teclado o selecciona controles en una interfaz.
    • Se recupera de un archivo.
    • Se llama de otro programa o conexión de red.
  • Información de procesos, lo que incluye:
    • Lógica de rendimiento.
    • Realizar cálculos matemáticos.
    • Manipular la entrada de datos para generar datos nuevos.
  • Resultados de salidas, que incluyen información que es:
    • Que se muestra a un usuario en una pantalla.
    • Que se guarda en un archivo.
    • Que se envía a otro programa.

Un programa puede adoptar formas diferentes para distintos propósitos. Un programa puede ser lo siguiente:

  • Una aplicación independiente, como un juego, un editor de texto, un software de facturación, etc.
  • Un script, como una macro avanzada que se ejecuta dentro de otro programa para automatizar cierta funcionalidad.
  • Una combinación de código en tiempo real, ecuaciones y visualizaciones de datos.

Algunos programas, incluyendo los ejemplos de este módulo, solo necesitan algunas líneas de código. Pero los programas complejos, como los sistemas operativos, necesitan decenas de miles de líneas de código, a veces millones.

¿Qué es un lenguaje de programación?

El trabajo de un lenguaje de programación es permitir que una persona escriba instrucciones para un equipo de una manera legible y comprensible. Los equipos comprenden el lenguaje de una manera distinta de lo que los humanos pueden hacerlo habitualmente. Los lenguajes de programación proporcionan a los creadores de programas una manera específica y menos complicada de interactuar con los equipos para darles instrucciones. Las instrucciones que se escriben en un lenguaje de programación se denominan código.

Hay muchos lenguajes de programación, cada uno con una sintaxis diferente. Sin embargo, después de aprender su primer lenguaje de programación, puede aplicar muchos de sus conceptos a cada nuevo lenguaje que aprenda.

¿Qué es la sintaxis?

Al igual que ocurre con cualquier lenguaje oral o escrito, los lenguajes de programación tienen sus propias reglas gramaticales, conocidas como sintaxis. La sintaxis de todo lenguaje de programación incluye palabras clave, operadores u otros tipos de reglas que pueden ser específicos de ese lenguaje.

Las palabras clave son palabras específicas reservadas por un lenguaje de programación que tienen un significado y un comportamiento especiales. En PowerShell, muchas de las palabras clave se leen como en inglés. Por ejemplo, if, while y return son palabras clave se pueden usar para escribir código en PowerShell y en muchos otros lenguajes.

Los operadores son caracteres especiales, como paréntesis (()) o signos igual (=). Estos caracteres le dicen al equipo que realice operaciones matemáticas, relacionales o lógicas específicas para generar un resultado.

Al escribir el código en el terminal de Cloud Shell en la unidad anterior, probablemente notó pequeños cambios en el color del texto y los símbolos. Esta codificación de colores se denomina resaltado de sintaxis. Al leer el código, el resaltado de sintaxis puede ayudarle a detectar errores. Esta característica está disponible e incluso es más sólida en muchos editores de código, como Visual Studio Code.

Compilación de código en PowerShell

Los equipos no leen bien nuestros programas en la forma en la que los escribimos. Los lenguajes de programación se deben traducir a un formato que el equipo pueda entender. Los lenguajes de programación tienen varias maneras de realizar esta traducción.

Muchos lenguajes de programación compilan código como un paso individual. El usuario escribe su código, lo ejecuta a través de un programa especial denominado compilador y el compilador genera un paquete ejecutable que se va a ejecutar.

Otros lenguajes, como Python, tienen un intérprete, que interpreta el código del equipo y ejecuta el código una línea a la vez que lo interpreta.

PowerShell funciona un poco distinto y un poco similar a los enfoques de compilación y de interpretación.

PowerShell se compila en un árbol de sintaxis abstracta (AST), primero en memoria, y luego se ejecuta. Pero no es necesario profundizar aquí para usar PowerShell. Todo lo que necesita saber es que el equipo comprueba primero el código en el AST mientras busca problemas importantes. A continuación, si todo está bien, el equipo ejecuta el programa sin necesidad de un programa ejecutable compilado. Este enfoque es útil, ya que garantiza que el código se ejecuta correctamente antes de que el equipo lo ejecute. De lo contrario, podría realizar cambios y detenerse debido a un error de sintaxis. Por el contrario, un lenguaje interpretado como Python ejecuta el código hasta que encuentra algún error en la sintaxis.

Exploración de PowerShell

Una característica importante de PowerShell es su sistema de ayuda integrado, que proporciona un acceso rápido a información sobre los comandos de PowerShell. Si se queda atascado al escribir, puede usar el comando Get-Help para buscar ayuda sobre los comandos o los conceptos de PowerShell. Por ejemplo, para ver todos los detalles sobre el comando Write-Output, puede escribir y ejecutar el comando siguiente:

Get-Help -Name 'Write-Output' -Full

Get-Help es el comando que se va a ejecutar y Write-Output es el nombre del comando para el que se va a obtener ayuda. El modificador -Full indica a PowerShell que obtenga toda la información del comando especificado, incluida una descripción del comando, información de parámetros, ejemplos y mucho más. Toda esta información de ayuda es accesible en cualquier terminal de PowerShell, incluido el terminal de Azure Cloud Shell.

Si quiere explorar todos los comandos que ofrece PowerShell, puede usar Get-Command * para ver la lista completa. El asterisco (*) es un carácter comodín en PowerShell. Permite hacer coincidir patrones para encontrar información de manera más dinámica. En este caso, puede usar * para filtrar por todos los comandos disponibles. Por ejemplo, para obtener todos los comandos que contengan User, ejecute Get-Command *User*.

Otro aspecto excelente de PowerShell es que viene con un shell integrado. Al usar el shell, puede probar el código e interactuar con la salida sin tener que ejecutar el código cada vez que quiera probar algo. Para asegurarse de que el código funcione según lo previsto, puede escribirlo directamente en el terminal.