Apuntes
Programación de la Shell de Linux - Fco. Manuel Maestre Alamo
Contenido del apunte (13)
Página 1
Caracteres especiales para la Shell
* Comodín de cualquier grupo de caracteres
¿ Comodín de cualquier carácter simple.
[..] Rangos de selección
; Separador en el agrupamiento de órdenes
< Redireccionamiento de entrada
> Redireccionamiento de salida
>> Añade a la salida al “archivo” reseñado
2> Envía los mensajes de error al “archivo” indicado
2>> Añade los errores al archivo especificado
| Encauzamiento de órdenes
& Ejecución en segundo plano
= Asignación de valores a variables
$ Valor o contenido de una variable
`..` Ejecución previa de la orden incluida
\ Eliminación de interpretación del carácter siguiente
‘..’ Eliminación de interpretación de todo lo incluido
“..” Eliminación de interpretación salvo $ \ ‘ “
Página 2
Variables de Entorno
HOME Nombre del directorio con la cuenta del usuario
PATH Un conjunto de nombres de directorio separados por el símbolo : en los que buscar los comandos
LOGNAME Nombre del usuario
SHELL Nombre completo del shell que se está utilizando
TERM Tipo de terminal que se está utilizando
Página 3
Variables locales
PPID Número identificador del proceso padre
PWD Nombre del directorio de trabajo actual
OLDPWD Nombre del anterior directorio de trabajo antes de ejecutar por última vez el comando cd
RANDOM Un número entero generado al azar
PS1 Cadena que presenta el shell cada vez que solicita un comando
PS2 Cadena que presenta el shell cada vez que solicita la continuación de un comando que ocupa varias líneas de pantalla
Página 4
Consulta avanzada de variables
${v} Idéntico a $v. Se utiliza en los casos de ambigüedad
${#v} Número de caracteres de la cadena que contiene v
${#v[*]} Número de elementos del vector v
${v-c} Si v ha sido definida su valor, en otro caso c
${v=c} Si v ha sido definida su valor, en otro caso le asigna ahora el valor c
${v+c} Si v ha sido definida c, en otro caso la cadena vacía
${v?c} Si v ha sido definida su valor, en otro caso se muestra en la salida de errores la cadena c y termina la ejecución del shell script
${v:+c} ${v:=c} ${v:-c} ${v:?c} Similar a los modos de consulta en que no aparece el símbolo :, pero a las variables además de estar definidas se les exige que el valor que contienen no sea la cadena vacía.
${v#p} ${v##p} El valor de la variable, pero eliminando del mismo todos los caracteres iniciales que encajen en el patrón p. Si usamos # se elimina la subcadena más corta y si usamos ## se elimina la más larga.
${v%p} ${v%%p} Similar a ${v#p} y ${v##p} pero eliminando la subcadena por el final.
${v:ini:num} Extrae num caracteres de la variable v a partir de la posición ini
Página 5
Variables especiales
$$ Número de proceso del shell script en el que se está utilizando
$0 Nombre completo del shell script en que se está utilizando
$1..$9 $n hace referencia al n–ésimo argumento de la línea de comandos
$? El código de retorno del último comando ejecutado
$# Número de argumentos
$* La lista de todos los argumentos
Página 6
Comando let
- Menos unario
! Negación lógica
* / % Multiplicación, división y resto
+ - Suma y resta
<= >= < > Operadores relacionales
== != Igualdad y desigualdad
= Asignación a variable
&& Y lógico
|| O lógico
Página 7
Comando expr
+ Suma
- Resta
\* Multiplicación
\ / División
% Resto
Página 8
Comando test
FICHEROS
-e fichero Cierto si existe fichero
-r fichero Cierto si se tiene permiso de lectura en el fichero
-w fichero Cierto si se tiene permiso de escritura en el fichero
-x fichero Cierto si se tiene permiso de ejecución en el fichero
-d fichero Cierto si fichero existe y es un directorio
-f fichero Cierto si fichero existe y no es un directorio
-h fichero Cierto si fichero existe y es un enlace simbólico
-c fichero Cierto si es un fichero especial de caracteres
-b fichero Cierto si es un fichero especial de bloques
-s fichero Cierto si el tamaño de fichero es > 0 (es decir, no está vacío)
CADENAS
-n c Cierto si existe la cadena c
-z c Cierto si la cadena c está vacía (la longitud de la cadena no es cero)
c1 = c2 Cierto si las dos cadenas son iguales
c1 != c2 Cierto si las dos cadenas son diferentes
ENTEROS
e1 -eq e2 Cierto si los dos enteros son iguales (e1=e2)
e1 -ne e2 Cierto si los dos enteros son diferentes (e1e2)
e1 -gt e2 Cierto si e1 es mayor estricto que e2 (e1>e2)
e1 -ge e2 Cierto si e1 es mayor o igual que e2 (e1>=e2)
e1 -lt e2 Cierto si e1 es menor estricto que e2 (e1 < e2)
e1 -le e2 Cierto si e1 es menor o igual que e2 (e1 <=e2)
EXPRESIONES (LOGICOS)
! exp Cierto si la expresión e es falsa (es decir, invierte el sentido de la opción)
exp1 -a exp2 Cierto si las dos expresiones son ciertas
Exp1 -o exp2 Cierto si la primera o la segunda expresión o ambas son ciertas
\( exp \) Los paréntesis se usan para agrupar expresiones y cambiar el orden de evaluación
Página 9
case..in..esac
case e in
p1,1 | p1,2 | … | p1,n1 ) lista de comandos ;;
p1,1 | p1,2 | … | p1,n2 ) lista de comandos ;;
…
pm,1 | pm,2 | … | pm,n1 ) lista de comandos ;;
*) Lista de comandos;;
esac
Página 10
if .. then .. fi
if l1
then
l2
elif l3
then
l4
elif l5
then
l6
…
else
ln
fi
Página 11
for..do..done
for v in c1 c2 … cn
do
lista de sentencias
done
for v in {valor_inicial … valor_final}
do
lista de sentencias
done
for v {valor_inicial … valor_final..incremento}
do
lista de sentencias
done
for v (( EXP1; EXP2; EXP3 ))
do
lista de sentencias
done
for (( ; ; ))
do
sentencias
done
Página 12
while..do..done
while l1
do
l2
done
Página 13
until..do..done
until l1
do
l2
done
Información
- Descripción
- Apuntes esquematizados de Programación de la Shell de Linux
- Creado por
- Francisco Manuel Maestre Alamo
- Visitas
- 77
- Etiquetas
- Valoración