Cómo recoger parámetros de la línea de comandos en un script de Swift

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.. declaramos un bucle que irá desde el valor 1 hasta el número de parámetros que hayamos pasado al script. Esto hará que el código encerrado entre llaves se ejecute una y otra vez hasta completar el bucle.

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.