Crear una versión de script de shell de comandos de terminal
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
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'
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.
El único requisito es la línea del intérprete, que debe estar al comienzo del archivo.
#!/bin/shpuede escribir un script para otros como bash (
#!/bin/bash) o zsh (#!/bin/zsh)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)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