Revision: 6566
Updated Code
at May 30, 2008 19:09 by Juanje
Updated Code
### 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
Revision: 6565
Updated Code
at May 30, 2008 19:07 by Juanje
Updated Code
### 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
Revision: 6564
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 30, 2008 18:53 by Juanje
Initial Code
### 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
Initial URL
Initial Description
Sorry, the comentaries are in spanish. I will translate them some day. The examples results are indicated with: # -> [result] Usually is the "echo" result
Initial Title
Vars expansions
Initial Tags
Bash
Initial Language
Bash