¿Cómo se mantiene una variable en Linux?

El shell de línea de comando del sistema operativo Linux es una herramienta poderosa que es, en su esencia, un intérprete de lenguaje de programación. Al igual que con cualquier otro lenguaje de programación, el shell de comandos le permite usar variables para almacenar, recuperar y manipular datos.

Configuración y recuperación de valores variables.

En el shell de comandos de bash, que es el shell predeterminado que se usa en Linux, puede establecer una variable utilizando la sintaxis general NAME = VALUE . Por ejemplo, en el símbolo del sistema, puede escribir:

 x = 5 

Y una variable llamada x se establecerá en el valor numérico 5 . Los nombres de las variables pueden estar en mayúsculas o minúsculas, o una mezcla de ambos, y son sensibles a las mayúsculas y minúsculas. Al configurar la variable, no debe haber espacios entre el nombre de la variable, el signo de igual y el valor.

No es necesario declarar la variable de antemano o especificar su tipo de datos. Bash determina el tipo de la variable en función de su valor.

Por ejemplo, nuestra variable también puede contener una cadena:

 x = hola 

Para una cadena simple, no es necesario incluirla entre comillas, pero si la cadena contiene espacios, debe rodearla con comillas dobles:

 x = "¡Hola mundo!" 

Para recuperar el valor de su variable, prefílela con un signo de dólar. Por ejemplo, para ver el valor de x usando el comando echo, debe ejecutar:

 echo $ x 

Qué salidas:

 ¡Hola Mundo! 

Lo que sucede aquí es que el shell toma el valor de su variable y lo inserta en su comando. Puede referirse a la variable en cualquier parte de su comando, incluso dentro de una cadena entre comillas dobles:

 echo "$ x $ x ¿Alguien me oye? Dije, $ x" 
 ¡Hola Mundo! ¡Hola Mundo! ¿Alguien puede escucharme? Yo dije: Hola, mundo! 

Sugerencia: las variables solo se interpretan dentro de una cadena si utiliza comillas dobles. Si usa comillas simples, el nombre de la variable se interpretará literalmente, sin interpretación:

 echo '$ x $ x ¿Alguien puede escucharme? Yo dije, $ x ' 
 $ x $ x ¿Alguien puede escucharme? Yo dije, $ x 

Establecer el valor de una variable para que sea la salida de un comando

Para establecer el valor de su variable para que sea la salida de un comando específico, use la forma:

 NOMBRE = $ (COMANDO) 

Por ejemplo, si su nombre de usuario es "steven", ejecutar el comando whoami devolverá el valor steven . Puede establecer esto a una variable:

 myname = $ (whoami) 
 echo $ myname 
 Steven 

Puedes hacer esto por cualquier comando. Si el comando toma argumentos, no es necesario que incluya el comando entre comillas. Todo dentro de los paréntesis se ejecutará como un comando:

 x = "¡Hola mundo!" 
 x = $ (echo $ x $ x $ x) 
 echo $ x 
 ¡Hola, mundo! ¡Hola, mundo! ¡Hola, mundo! 

Usando variables en un script simple

Veamos cómo podemos usar una variable en un script de copia de seguridad simple. Digamos que desea hacer una copia de seguridad de todo lo que se encuentra en los documentos del directorio en su directorio principal. El script archivará todo en ese directorio, y cualquier directorio que contenga, en un archivo tar cuyo nombre contenga la fecha actual. Mantengamos las copias de seguridad en un directorio llamado copias de seguridad en su directorio de inicio (asumiremos que este directorio ya existe. De lo contrario, puede ejecutar mkdir ~ / backups para crearlo).

Abra un editor de texto y coloque este texto en un nuevo archivo:

 #! / bin / bash MYFILENAME = ~ / backups / documents-backup - $ (fecha +% Y-% m-% d) .tar.gz 

tar -czf $ OUTPUTFILE ~ / documents

Echemos un vistazo a cada línea de este script. La primera línea, #! / Bin / bash, declara la secuencia de comandos como un archivo ejecutable y especifica que debe ejecutarse con / bin / bash, que es el ejecutable del shell de comandos de bash. Nota: el archivo no será ejecutable hasta que modifiquemos el archivo más tarde, pero esta línea es necesaria en cualquier script bash apropiado.

La segunda línea establece la variable MYFILENAME, que contendrá el nombre del archivo que contiene nuestra copia de seguridad. La primera parte del nombre del archivo es nuestro directorio de copias de seguridad, ~ / copias de seguridad .

Nota: el carácter de tilde ( ~ ) es un nombre de directorio especial que siempre representa nuestro directorio principal.)

A continuación, tenemos el principio del nombre del archivo, documentos-copia de seguridad- . Luego, insertamos la fecha actual usando el comando de fecha, el símbolo más y la cadena de formato de fecha % Y-% m-% d . Por ejemplo, si la fecha fuera el 23 de febrero de 2015, regresaría 2015-02-23 .

Finalmente, usamos la extensión .tar.gz, que es la extensión de nombre de archivo adecuada para un archivo tar comprimido con gzip. Entonces, si ejecutamos este script el 23 de febrero de 2015, el valor de MYFILENAME sería ~ / backups / documents-backup-2015-02-23.tar.gz . Si lo ejecutamos el 7 de mayo de 2015, el valor sería ~ / backups / documents-backup-2015-05-07.tar.gz .

La tercera línea es el comando que crea el archivo. Usamos el comando tar con la opción -czf, que creará ( c ) un archivo comprimido ( z ) usando el nombre de archivo especificado ( f ). Luego, especificamos el nombre del archivo de almacenamiento refiriéndonos a la variable que creamos en la línea 2, OUTPUTFILE . Por último, le decimos a tar qué es lo que queremos archivar: el directorio ~ / documents .

Para ejecutar el script, guarde el archivo de texto en su directorio de inicio (o en cualquier otro lugar que prefiera) y asígnele un nombre apropiado, por ejemplo, backup-my-docs . No es necesario darle una extensión de nombre de archivo. Salga del editor de texto y haga que el archivo sea ejecutable utilizando el comando chmod + x, por ejemplo:

 chmod + x ~ / backup-my-docs 

Ahora puedes ejecutar el script. Por ejemplo, si el script está en su directorio de trabajo, puede ejecutarlo con:

 ./backup-my-docs 

O, si está en su directorio de inicio, puede ejecutarlo desde cualquier directorio con el comando:

 ~ / backup-my-docs