/ Published in: Bash
Sorry, the comentaries are in spanish. I will translate them some day.
The examples results are indicated with:
# -> [result]
Usually is the "echo" result
The examples results are indicated with:
# -> [result]
Usually is the "echo" result
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
### Expansión de variables con ${} ### ## Valor por defecto # Si no está definida una variable, se usa un valor predeterminada. Si está definida, # se usa su valor echo ${NAME:-Pepe} # -> Pepe NAME="Juanje" echo ${NAME:-Pepe} # -> Juanje ## Asignar valor por defecto # Asigna un valor a la variable, pero sólo si está ntiene ya algún valor. NAME="" echo $NAME # -> echo ${NAME:=Pepe} # -> Pepe echo $NAME # -> Pepe echo ${NAME:=Juanje} # -> Pepe ## Muestra error si no existe la variable (No si está vacia o no) # Podemos poner un mensaje personalizado al error echo ${X?} # -> -bash: X: parameter null or not set echo ${X?La variable X no exite} # -> -bash: X: La variable X no exite X="" echo ${X?La variable X no exite} # -> X="Algo" echo ${X?La variable X no exite} # -> Algo ## Usar un valor alternativo, si ya existe la variable y tiene algún valor. echo ${Y:+Contenido alternativo} # -> Y="" echo ${Y:+Contenido alternativo} # -> Y="Algún contenido" echo ${Y:+Contenido alternativo} # -> Contenido alternativo ## Subcadenas del valor de la variable # :{inicio}:{tamaño # Si no se pone el tamañ, se coje la cadena desde el {inicio}, hasta el final # Se empieza a contar por 0 TEXT="Un texto de ejemplo" echo ${TEXT:3} # -> texto de ejemplo echo ${TEXT:3:5} # -> texto ## Subcadena quitando del principio # Con un sólo # se quitará la primera ocurrencia de lo que esté detrás B="blablabla..." echo ${B#bla} # -> blabla... echo ${B#*bla} # -> blabla... # Con 2 # se eliminarón cadenas más largas echo ${B##bla} # -> blabla... echo ${B##*bla} # -> ... # Otro ejemplo práctico: D="/srv/chroot/var/chroot/etc/apache" echo ${D#*chroot} # -> /var/chroot/etc/apache echo ${D##*chroot} # -> /etc/apache ## Subcadena quitando del final # Con un sólo # se quitará última ocurrencia de lo que esté detrás B="blablabla...blablabla" echo ${B%bla} # -> blablabla...blabla echo ${B%bla*} # -> blablabla...blabla # Con 2 % se eliminarón cadenas más largas echo ${B%%bla} # -> blablabla...blabla echo ${B%%bla*} # -> # Otro ejemplo práctico: D="/srv/chroot/var/chroot/etc/apache" echo ${D%chroot*} # -> /srv/chroot/var/ echo ${D%%chroot*} # -> /srv/ ## Nombres de variables que empiecen por un prefijo echo ${!U*} # -> UID USER echo ${!B*} # -> B BASH BASH_VERSINFO BASH_VERSION echo ${!BASH*} # -> BASH BASH_VERSINFO BASH_VERSION ## Tamaño del contenido de una variable, en caracteres X="Un texto cualquiera" echo ${#X} # -> 19 N=22435 echo ${#N} # -> 5 # Sustituir una cadena a=/etc/kung/foo echo ${a/foo/fu} # -> /etc/kung/fu