GoConqr has a new look! Let us know what you think.

Notes

Programación de la Shell de Linux - Fco. Manuel Maestre Alamo

Francisco Manuel Maestre Alamo Administración de Sistemas Operativos Grado Superior Spanish 13 pages

Content of the notes (13)

Page 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 $ \ ‘ “

Page 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

Page 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

Page 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

Page 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

Page 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

Page 7

Comando expr

+ Suma

- Resta

\* Multiplicación

\ / División

% Resto

Page 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 (e1e2)

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

Page 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

Page 10

if .. then .. fi

if l1

then

l2

elif l3

then

l4

elif l5

then

l6

…

else

ln

fi

Page 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

Page 12

while..do..done

while l1

do

l2

done

Page 13

until..do..done

until l1

do

l2

done

Information

Description
Apuntes esquematizados de Programación de la Shell de Linux
Views
77
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?