Como pudimos aprender en el artículo sobre Ejecutar scripts de Swift desde la terminal de MacOS podemos crear pequeños programas que realicen operaciones para nosotros.
En este artículo aprenderemos a recoger parámetros desde la línea de comandos para poder crear scripts más personalizables.
Script de saludo personalizado
Crearemos un pequeño script que nos saludará con el nombre que le pasemos como parámetro. Para ello crearemos un script de Swift llamado saludame.swift con el siguiente código:
import Cocoa
func getNombreDesdeParametros() -> String {
let numeroDeparametros = CommandLine.arguments.count
var nombreRecogido = ""
for indice in 1..
Una vez escrito el script si en la terminal ejecutásemos la siguiente línea:
saludame.swift Fulano de Tal
El script nos respondería escribiendo en la pantalla de la Terminal el siguiente texto:
Hola Fulano de Tal!
El script en detalle
En este script realizamos las siguientes operaciones:
- Importamos el framework Cocoa para poder realizar operaciones propias de una aplicación MacOS
- Declaramos la función getNombreDesdeParametros() que devuelve una variable de tipo String
- Escribimos nuestro saludo por pantalla
El peso de este script está en la función getNombreDesdeParametros() que explicaremos ahora en detalle línea a línea.
En let numeroDeparametros = CommandLine.arguments.count
declaramos una constante llamada numeroDeparametros que consulta a CommandLine.arguments cuántos parámetros ha pasado el usuario a la hora de llamar al script.
En la línea var nombreRecogido = ""
declaramos la variable nombreRecogido y la inicializamos con valor de cadena de texto vacía. Esta variable la utilizaremos para ir recogiendo cada uno de los parámetros y agruparlos en una sola cadena de texto.
En la línea for indice in 1..
Dentro del bloque de código a ejecutar por el bucle encontramos la línea nombreRecogido = "\(nombreRecogido) \(CommandLine.arguments[indice])"
que actualiza el valor de la variable nombreRecogido al valor que ya había seguido del nuevo parámetro que está recogiendo el bucle.
Por último la línea return nombreRecogido
retorna el valor final de la variable nombreRecogido como valor de la función.
CommandLine.arguments en detalle
CommandLine.arguments es un Array de cadenas de texto que contiene todo el texto que se ha pasado como parámetro a la hora de llamar al script
CommandLineArguments siempre tiene al menos un parámetro en la posición 0 del script. En esta posición 0 se almacena el nombre de nuestro script ya que es el primer elemento de la línea de comandos a la hora de llamar a nuestro script. Si escribiesemos la siguiente línea de código se escribiría en la Terminal el nombre de nuestro fichero de script:
print(CommandLine.arguments[0])
Por pantalla saldría el texto: saludame.swift