Crear una versión de script de shell de comandos de terminal

Sep 28 2020

Estoy empezando a aprender los conceptos básicos de la terminal de Linux y estoy un poco confundido al convertir los comandos de la terminal en un script de shell. ¿Cómo abordaría la creación de un archivo de script en la terminal de Linux y la creación de una versión de script de shell de mi código a continuación?

curl -O https://people.sc.fsu.edu/~jburkardt/data/csv/cities.csv
head -n 12 cities.csv

Respuestas

7 RomanRiabenko Sep 28 2020 at 01:57

Usando un editor de texto para crear su secuencia de comandos

Los scripts se guardan en archivos de texto. Puede crear uno en un editor de texto, como gedito nano:

$ nano yourscript.sh

El nombre del archivo en general y la extensión del nombre del archivo en particular no importa . En su archivo de script, debe declarar el ejecutable del intérprete para ejecutarlo (un shebang) . Luego agregue su código. Para guardar su secuencia de comandos nano, presione Ctrl+ X, luego escriba yy presione Enter.

Componiendo tu guion

Si pasa argumentos al script, puede hacer referencia a ellos en su código por número (el primer argumento pasado es $1, el segundo es $2, y así sucesivamente). $0es el propio nombre del guión.

Como regla general, utilice siempre comillas dobles alrededor de las variables .

Tomando su código, por ejemplo, el script podría ser:

#! /bin/bash
curl -O "$1"
head -n 12 cities.csv

Puede haber un espacio después#! , pero no es necesario. En la mayoría de los casos, puede verificar la $0variable en el terminal para el ejecutable de shell interpretando sus comandos en el terminal :

$ echo $0
/bin/bash

Mejorando su código

Suponiendo que todo lo que desea son las primeras 12 líneas del archivo descargado, puede omitir guardar el archivo descargado en el disco y canalizarlo al siguiente comando :

#! /bin/bash
curl -s "$1" | head -n 12

Como beneficio adicional, le permite omitir el nombre de archivo en su script.

Ejecutando el script

Suponiendo que guarde su script como yourscript.sh, agregue permiso para ejecutarlo primero:

$ chmod +x yourscript.sh

Luego, para ejecutarlo, debe especificar la ruta y proporcionar los argumentos. Si está en el directorio actual, puede especificar la ruta al anteponer ./como:

$ ./yourscript.sh 'https://people.sc.fsu.edu/~jburkardt/data/csv/cities.csv'
3 mtk Sep 28 2020 at 01:50

Todo el comando que escribe uno por uno en el símbolo del sistema, puede simplemente colocarse en un archivo de script y ejecutarse una vez.

  1. El único requisito es la línea del intérprete, que debe estar al comienzo del archivo.

      #!/bin/sh
    

    puede escribir un script para otros como bash ( #!/bin/bash) o zsh ( #!/bin/zsh)

  2. Haga que su script sea ejecutable ejecutándolo chmod +x scriptFile.sh(es bueno tener la extensión sh, ya que indica que es un archivo de script)

  3. Ejecute el script por

    ./scriptFile.sh

Opcional: puede agregar la ruta del directorio a la variable PATH, para poder ejecutar el script desde cualquier directorio simplemente llamando scriptFile.shal igual que invoca cualquier otro comando de shell ls, ocat