domingo, 21 de octubre de 2012

Asignar la salida de un comando a una variable (Bash Script)



 






En algunos casos puede que queramos guardar la salida de un comando o instrucción en una variable, para su posterior uso en el script. La sintaxis sería la siguiente:

variable = `comando`  



A continuación vemos un ejemplo para entenderlo mejor.


Crear un directorio que tenga como nombre la fecha actual


Utilizando lo visto anteiormente, se crea una carpeta en la que su nombre es la fecha actual con el formato yyyy-mm-dd:

#!/bin/bash
fecha=`date +"%Y-%m-%d"`
mkdir fecha
 


El nombre de la carpeta tendía la siguiente estructura: 2012-10-17 .

Como siempre, podéis utilizar los comentarios para exponer vuestras dudas.



 




8 Comentarios:

walter sotomayor dijo...

muchas gracias me sirvio demaciado

Felipe Martínez D. dijo...

Me alegro de que te sirviera.

Saludos cordiales.

Ringfstork dijo...

Buenas. Estoy buscando info al respecto, ya que uso en un script ese método pero para buscar la fecha de dentro de 15 minutos. Mi script es el siguiente :

#!/bin/bash
minutos=15
aAlfa="date +\"%Y-%m-%dT%H:%M\" -d '+ "
aAlfa+=${minutos}
aAlfa+=" min'"
echo $aAlfa
aAlfa=`$aAlfa`

La salida del script es la siguiente :

date +"%Y-%m-%dT%H:%M" -d '+ 15 min'
date: extra operand `15'
Try `date --help' for more information.

Mientras que si directamente copio la primera linea de la salida (date +"%Y-%m-%dT%H:%M" -d '+ 15 min') y la ejecuto manualmente el resultado es el que yo quiero :

2015-09-12T10:32

¿ Que es lo que hago mal ?

Gracias por adelantado

Felipe Martínez D. dijo...

Hola Ringfstork.

Pon en tu script lo siguiente:

#!/bin/bash
date +"%Y-%m-%dT%H:%M" -d '+ 15 min'


Verás como sí funciona.

Saludos.

Maki dijo...

Hola Ringfstork No se mucho del tema , pero quizá las comillas que encierran el comando deban ser simples, o prueba $(comando) ademas no conozco el comando que ejecutas pero no es el mismo el de el script que el que ejecutas directamente en bash, porque el del el script en el momento de ejecutarse le falta "15 min"

Barquisimeto dijo...

VARIABLE = (`comando -opcion fichero | comando | comando`)

Anónimo dijo...

Muy claro y sencillo de entender, muchas gracias! Solo hay que cuidar sintaxis. En el caso de usar corchetes, aconsejaría usar solo ``!

Felipe Martínez D. dijo...

Muchas gracias. Todos los comentarios con la intención de ayudar serán bienvenidos.

Saludos.

Publicar un comentario

Felinfo: Java, Linux, Virtualización. Open Source.  ©Template Blogger Green by Dicas Blogger .

TOPO