Encadenando comandos: operadores de control Flashcards
¿Que son los operadores de control?
Son simbolos reservados por la terminal que permiten ejecutar mas de un comando o encadenarlos.
¿Como podemos correr los comandos?
Sincronamente, asincronamente o con condicionales.
¿Que es encadenamiento de comandos?
Es la ejecución de más de un comando a la vez.
¿Cuales son los tipos de ejecución?
Ejecución Secuencial.
Ejecución condicional.
¿Que quiere decir Ejecución Secuencial?
Que la ejecución del siguiente comando no está condicionada por el resultado del comando anterior.
¿Que quiere decir Ejecución Condicional?
Que la ejecución del siguiente comando si esta condicionada por el resultado del comando anterior.
En la ejecución condicional.
Si el resultado del comando anterior es exitoso, ¿se ejecuta el siguiente comando?
Si. La condición indica si se ejecuta el comando si el comando anterior ha sido exitoso o no.
Si hay que ejecutar varios comandos uno tras otro, ¿Cual es la mejor ejecución que se puede usar?
Ejecución secuencial.
¿Cual es el operador de la Ejecución Secuencial?
( ; )
¿Cual es la sintaxis genérica para la ejecución secuencial?
$ comando1 ; comando2 ; comando3 ; … ; comandoN
Los espacios en:
$ comando1 ; comando2 ; comando3 ; … ; comandoN
¿Son obligatorios?
No. Pero mejoran la legibilidad.
En la ejecución secuencial: $ comando1 ; comando2 ; comando3 ; … ; comandoN
¿Que vinculo existe entre los comandos?
Ningun vinculo. La ejecución de un comando no está condicionada por el resultado del anterior.
¿Qué es un código de retorno?
Es un código que devuelve un comando al terminar su ejecución.
¿Cuales son los valores que puede tomar un codigo de retorno?
Entre 0 y 255
¿Cual es la variable que contiene el codigo de retorno del ultimo comando ejecutado?
La variable especial ( $? )
¿Como se usa la variable especial ( $? )
$ echo $?
0
$ sudo apt update ; sudo apt upgrade ; sudo apt install synaptic
¿Que permite hacer el punto y coma?
Ejecutar varias instrucciones en una misma línea.
¿Cual es la diferencia entre la ejecución secuencial y la ejecucion condicional?
En ambos se pueden ejecutar varios comandos en la misma orden.
La diferencia es que en la ejecución condicional el siguiente comando se ejecuta si el comando anteriro finalizó o no satisfactoriamente.
¿Cuales son los dos subtipos de ejecuciones condicionales?
Operador lógico Y ( && )
Operador lógico OR ( || )
En el operador logico Y ( && ).
$ comando1 && comando2 && comando3 &&…&& comandoN
¿Que es necesario para que se ejecute el siguiente comando?
El comando anterior tiene que finalizar exitosamente.
¿Cual es la sintaxis genérica para el operador Y?
$ comando1 && comando2 && comando3 &&…&& comandoN
$ comando1 && comando2 && comando3 &&…&& comandoN
¿Como funciona este comando?
El comando2 solo se ejecutará si el comando1 fue exitoso.
Igualmente el comando3 se ejecutará si el comando2 fue exitoso.
¿Que hace este comando?
$ mkdir midirectorio && cd midirectorio
Crea el directorio ( midirectorio ) y luego de ejecutarse exitosamente se situa en el ( midirectorio ).
El directorio se crea con exito, por lo que se ejecuta el comando ( cd ).
En el operador logico OR ( || ).
$ comando1 || comando2 || comando3 ||…|| comandoN
¿Que es necesario para que se ejecute el siguiente comando?
Que el comando anterior no haya finalizado exitosamente.
¿Cual es la sintaxis genérica para el operador logico OR?
$ comando1 || comando2 || comando3 ||…|| comando
$ comando1 || comando2 || comando3 ||…|| comandoN
¿Como funciona este comando?
El comando2 se ejecutará solo si el comando1 no fue exitoso.
Igualmente el comando3 con el comando2.
¿Que hace este comando?
$ [ -f ~/miarchivo.txt ] || touch ~/miarchivo.txt
Se verifica si el fichero ( miarchivo.txt ) existe.
Si no existe se crea.
¿Que hace este comando?
$ [ -f ~/miarchivo.txt ] && echo “El archivo miarchivo.txt existe” || touch ~/miarchivo.txt
Este comando verifica que existe el fichero, si existe muestra un mensaje de que existe y el comando ( touch ) no se ejecuta.
Si no existe se crea el archivo ( miarchivo.txt )
$ [ -f ~/miarchivo.txt ] && echo “El archivo miarchivo.txt existe” || touch ~/miarchivo.txt
Si el archivo no existe porque se crea el archivo ( miarchivo.txt ) ?
Porque el operador OR ( || ) se ejecuta cuando el comando anterior no es exitoso.