Transcripciones
1. Introducción: Hola y bienvenidos a divulgar aquí. Por qué quiero enseñarte sobre scripting bash. Mi nombre es Eric Samara. Tengo 36 años. Tengo aproximadamente 20 años de experiencia ejecutando un Lennox operativo. Y por qué querrías hacer para aprender a hacer scripting bash mientras muy simple todo lo que haces en tu computadora. Mi gran mayoría se puede hacer en la línea de comando. Todo lo que se pueda hacer en la línea de comandos puede ser scripted. Puedes crearte muchos script para asistirte en tu día a día en tus tareas diarias. Entonces, sin más esperar, aprendamos a guiar.
2. Acerca de notes.org: De acuerdo, hablemos aquí del archivo de esa org por un segundo rápido. El motivo por el que hago esto es porque el modo órgano agrega tanta funcionalidad a un simple
archivo de texto que mejorará enormemente tu quitarte de este costo. Te marcharás con la clase con un solo archivo que contiene todas tus notas que
quieres tomar en todo. Que toda la información que quería transferir para hacer referencia al ejercicio, todo eso dentro de un archivo de texto. Entonces si no tienes el Mac un modo de órgano y puesto, te
invito a ir al límite libre ha sido el video número 14 te guiará por el proceso y nos vemos en la casa de al lado.
3. characters especiales: De acuerdo, bueno, empecemos. Sería bash scripting primero. Yo quiero repasar cual tú,
uh a lo largo del término de unos pocos personajes especiales que empiezan con simple fuera para agregar comentarios a un guión bajo mientras en una alianza de script bash. Empezar con este personaje es un comentario. Por ejemplo, esta sería una cuna inútil porque no hace nada. Simplemente tiene un comentario al respecto. También puede seguir el final de un comando. Pero necesitas tener un espacio entre el final de tu mando y un signo de mando. De lo contrario lo hará, a través de un error bash también te permitirá colocar comentarios incrustados dentro de una tubería, por ejemplo, y en muchas otras áreas, eso hace que sea muy difícil de leer. Segundo carácter especial quiero pasar por el cual es un compensa separador de semi columna permite poner más de un comando en la misma línea. Entonces, por ejemplo, este de aquí eco ello y ese eco están todos en la misma línea. Entonces si fuera a quitar los resultados aquí y voy aquí y presiono control C control, ver, confirmo que quiero evaluar el pelaje. Tengo mis resultados aquí atrás. También sé que normal otra separación de recomiendo y Olynyk Shell también funciona en un
script bash por ejemplo, éste que bifurca un, um, proceso en segundo plano y luego iniciar el proceso que viene después. También puedes usar eso en un script a ah y doblar uno aquí, lo que significa que se ejecuta el segundo comando. Si el primero encomiar este éxito también se puede poner en un script bash. Entonces, ¿cuál es la diferencia entre las comillas dobles y las simples? La diferencia es que la comilla doble preservará el carácter más especial de interpretación, mientras que la comilla simple bien conservada, todos los caracteres especiales. Empezaré aquí con un ejemplo de no comillas en una línea de comandos y las comillas dobles. Entonces en esta primera línea aquí, esto enumerará todo el archivo en slash var slash log que comienza con s por qué y tiene
algo más después, mientras que el 2do 1 aquí va a buscar el archivo leído y s por qué con una estrella en el n. Entonces si tenía control C control, ver para evaluar el código mi primera lista de comandos podría archivar mientras mi 2do 1 me dice que no
hay archivo s. por qué estrella en este ejemplo aquí demuestro la diferencia en interpretación de doble cotizaciones a comillas simples. Por lo que tengo una variable llamada barra que contiene la ayuda de cadena. Entonces si hago eco así, se
puede ver en los resultados aquí abajo ecos Hola. Es una forma adecuada de escribir, pero es un buen hábito citar tu variable de cualquier manera, por lo que la doble cita se hace eco del valor de nuestro tiempo. El precio simple igual imprime literalmente dólar var. Entonces sólo para mostrar el ejemplo, si borro los resultados y vengo aquí y tuve control ver dos veces veo el resultado de mi línea de
comando justo ahí. Entonces eso es todo para el sencillo personaje especial que hay que recordar por ahora. En la siguiente sesión, vamos a empezar a buscar más en variable y funciones
4. variables de bash: Ahora veamos variable en bash. Las variables están desatadas. Básicamente, lo que eso significa es que debajo del capó son todos cuerdas de carácter. Excepto si eres variable contiene solo dígito bash te permitirá hacer nuestra
cooperación admitida en ello. Ver para leerme para saber cómo voy a abrir esa sección de código aquí porque la quiero en buffer
completo. Por lo que aquí declaro una variable ocho. Es un buen Abbott, pero no se requiere. Asigné una cadena y creo una variable de asignación. Golpear al número dos les hago eco. Después voy por ahí y cambié de ocho a número cuatro y golpeé a una cuerda. Yo los hago eco. Una vez que estoy aquí, creo la escena variable y le asigné el resultado de un más dos, que actualmente está permitido porque solo contiene dígitos. Entonces intento hacer lo mismo. Creo variable D e intento asignarla B más tres, excepto beat es una cuerda. No es un dígito en este momento, así que veamos los resultados de eso. Entonces si tenía control C escena de control, entonces se pueden ver los resultados aquí y se puede ver el error donde bash se quejan intentar hacer en operación aritmética en la cadena y el resultado de esa variable. Entonces estos son los conceptos básicos de cómo funcionan las variables. vamos a ver con más detalle cuando entremos a declarar o mecanografiar la sección en la siguiente sesión, vamos a buscar funciones.
5. Funciones: Ahora veamos las funciones, los fundamentos de la misma declarando una función y pasándola parámetros funciones o declaramos con la función. Ejemplo de palabra clave. Funk mi funk después de la función nombrada. Tiene que haber un espacio, y después de eso se puede abrir el contenido de la función con los corchetes, pero se necesita tener un espacio intermedio. Puedes poner esos corchetes aquí entre medio, excepto que nada puede entrar en ello. Entonces es útil si tienes la costumbre de hacerlo para, Digamos, programadores de
C. Pero Bash no toma argumentos de esta manera. No se te permite poner nada dentro de ella. Entonces echemos un vistazo a la primera sección de código aquí que tengo. Olvidé mencionar algo muy importante al inicio de esta clase. Esta línea aquí es lo que llamamos la ella bang, y necesita estar ahí. Este es el camino al intérprete de shell o intérprete que va a interpretar tu guión porque estamos trabajando en bash, scripting la primera línea de cada bash. guión tiene que ser esto, um, así que volvamos a la función. Entonces como ves, declaro una función necesito tener un espacio. Si no hay espacio bash se quejará de ello ahora. Disfunción aquí. A qué hace que primero se hará eco de que usted ha llamado una función. Entonces probará para ver si el perímetro uno a cero en vinculado Si lo es, eso significa que no pasaste ningún parámetro. De lo contrario te mostrará los parámetros. Es así como se accede a los argumentos fueron una función número uno, número dos número tres y están separados por espacio. Entonces esto es lo mismo excepto usar esos corchetes aquí. Como dije, no se necesita. Pero si tienes la costumbre de poner dem, déjalos ahí. Si tu programador c, te va a gustar. Entonces ejecutemos disco Dhere control C control de látigos de mar. Ahí vamos y se puede ver el resultado de esa función aquí. Entonces una vez más, te
invito a entrar ahí, meterte con las cosas, cambiarlas, romperlas Y en la siguiente sesión vamos a ver cómo lo que se puede devolver de una función
bash
6. Retorno de función: De acuerdo, ¿Qué se podría devolver de una función en bash? Simplemente ponga un entero Onley Cualquier intento de regresar de lo contrario resultará en un más cerca. Entonces en disco el Skoda aquí que tengo tengo exactamente la misma función que tenía antes excepto por ya sea devuelto un cero o uno. Entonces creé una función llamada válvula roja de retención para valor de retorno de cheque y aquí. Y esto tendrá más sentido cuando pasemos por el dia. Si las declaraciones comprueban que los primeros parámetros ese primer argumento que recibe la función Si está por encima de cero, eso significa que obtuvimos un error. Si lo contrario significa éxito. Por lo que primero llamamos a mi función y luego llamamos o función para tomar el valor de retorno. Siempre que necesites comprobar el valor de retorno de tu comando de última ejecución y bash, lo excedes
contigo,
acceda con el signo de signo de interrogación del dólar. Por lo que ejecuta un comando, devolverá un valor cero o uno o más con el fin de comprobar que ese valor se almacena en la variable. Se trata de un sitio especial variable de dólar estelar. Entonces lo hacemos otra vez comprobaría mi función con un parámetro y luego lo mismo con los otros de aquí. Entonces si miramos si ejecutamos con control C control ver, lo
puedes ver. A pesar de que has llamado no me has dado un parámetro retorno Número uno función devuelto uno. Entonces así es como devuelves valor de una función. Entonces, ¿y si necesitas devolver la cadena? Bueno, no se
puede devolver la cadena, pero se puede, en cierto sentido, pasar una variable por referencia y modificar en variable desde dentro del propio script. Entonces si digamos que necesitas devolver un valor, tienes que cambiar realmente una variable fuera de las funciones frente mientras madera Eso es genial . Entonces aquí declaro var hago una función Rev son los cuales van mal y vamos a poner en su primer parámetro. Pondrá lo que pongo aquí. Entonces si miro aquí, declaro mi función. Asigné una carga mi variable var voy con llamé a la función y pasé mi variable de nuestro pero aviso No hay signo de dólar aquí antes, De lo contrario no funcionará. Y luego después de ir con la cuerda, var habrá cambiado para L. Un mundo. Entonces si voy eso y lo ejecuto, se
puede ver que se hace eco antes de que se envíe a. Rev son un igual después por lo que no puedes devolver nada más que un entero de una
función bash . Pero puedes usar pasar una variable por referencia con el fin de cambiar alguna variable, y la siguiente sesión vamos a mirar, declarar y mecanografiar y mirar un poco más en variables.
7. La declaración de Declare: OK, ahora veamos más detalladamente en la declaración de declaración. Ya me has visto usarlo en un ejemplo hace apenas unos minutos, declarar una tipografía. Ambos son iguales. Declarar una versión específica. Dos de bash y mecanografía trabajos en otra concha como una salchicha declare viene con opciones, y aquí lo vamos a ver. El guión, Nuestra opción es de sólo lectura. Es un equivalente áspero al mar. Tipo constante. Cualquier intento de cambiar el valor dará como resultado errores. Entonces si miro el guión aquí, declaro, leí sólo nuestro ove r y se lo dije a dos. Me hice eco de una variable. Entonces intento cambiarlo y hago eco de la variable de nuevo. Voy a quitar los últimos resultados. Vuelve a ejecutar el script, y puedes ver que la variable se mantuvo igual y bash a través de un error cuando atendimos para cambiarlo, puedes usar declare para declarar entero uh, con la opción dash I. Entonces si declaro aquí uno mi fin, lo asigno a que lo hago eco. Entonces intento cambiarlo a una cuerda con espacios y y vuelvo a hacer eco de mi final. Y como puedes ver bash aquí lanza un error y la variable permanece en el número dos. Entonces traté de cambiarlo por una cadena sin espacios en ella. Y bash no se queja, sino mis ceros e iguales. El punto es, si declaras un entero específico, asegúrate de que siga siendo una integral específica. De lo contrario, simplemente no especifiques eso es lo que quieres. Tendrás menos restricción donde podrás cambiarlo de nuevo por buena medida. Voy a eliminar los resultados aquí y ejecutamos el guión y ahora tenemos los mismos resultados para declarar un Neri con golpes la opción de pago de guión. Por lo que aquí declaro mi Eri inicializé el área. Están separados por espacios Aquí utilizo un bucle for que verá en más detalles para
pasar por cada elemento dentro del área misma y los hago eco. Lo hago de otra manera, usando un bucle while y realmente lo hago en operación aritmética en este caso aquí. Por lo que a esos dos los veremos con más detalle más adelante por el camino. Pero si lo hacemos ahora, lo
puedes ver pasando por el área y dándome a algunos del ejemplo, también
puedes declarar específicamente una función. Ahora. Si declaras argumento f viuda, hace un listado de toda la función que se definieron previamente dentro de ese script. Entonces aquí declaro mi función y especifico deuda. Se trata de una función con la opción dash F. Entonces declaro variable mi funk, Torri. Pero no digo qué es esta función no declaré y eso no es un problema. Esta es la función a definición que declaré anteriormente. Y ahora acabo de diseñar una variable de función. Entonces mi funk tres es ahora una función. Los llamé 123 y luego solía declarar Dash F sin opciones. Veamos los resultados. Has llamado a uno al que has llamado. Has llamado a tres y luego enumere todas las funciones en sí. En el guión, el guión sale para las exportaciones. Yo enumeré aquí porque si miras las opciones por tu cuenta, verás que está ahí. Esto lo describiré más adelante. Tendrá mucho más sentido cuando tengamos una mejor comprensión del
entorno bash y sus funciones de exportación. y ahora, por sí mismo. Todo lo que hemos visto que anteriormente incluso puede probarlo en tu shell en tu propia terminal. A la derecha, declarando Ya verás que te imprimirá un montón de información. Es bueno lucir. Por lo que en la próxima sesión vamos a empezar a mirar la declaración condicional, incluyendo la sentencia if en la declaración de caso.
8. Si la declaración: Empecemos a mirar la declaración condicional del estadista condicional. Su primera mirada a la declaración if Tienes una referencia como de costumbre aquí. Echemos un vistazo a la estructura. Todos hacen eso en un búfer, por lo que es más fácil puedes poner en la declaración if en una línea como esta. Si tu elogio de prueba estaría aquí, entonces necesitarías una semi columna. El espacio es importante. Den Tu código a ejecutar. Lo mismo con el semi Colin en los espacios. Entonces esa sería una declaración if en la línea de una si se puede hacer. No siempre se requieren soportes compactados, pero es un buen hábito, pero puedes ponerlo en una línea múltiple como esta. Si tu secuencia de prueba aquí semi columna importante y así es el espacio, puedes usarlo con corchetes simples o corchetes dobles. Verás y entenderás por qué un poco más abajo. ¿ Qué? Así es como lo haces si quieres agregar una declaración else si semi columna den ales y terminar con f you y así es como harías tu si otra si una declaración else, Así que ten en cuenta que la otra si también requiere una semi columna y luego palabra clave. Y, como siempre, los
espacios son importantes. Entonces, ¿cuál es la diferencia entre los paréntesis simples entre los corchetes dobles? Y aquí tenemos un buen, buen guión. Se trata de una copia y pega de la fuente escrita ahí. Por lo tanto, contrario a los paréntesis simples, corchetes
dobles impiden la división de palabras de los valores variables. Entonces si R es igual en bar con espacios, no es necesario doblar la cotización var en una prueba, a pesar de que siga siendo un buen hábito. Además, los corchetes dobles previenen la expansión del nombre de ruta tan literal cadena con comodín. No trates de gastarlo a la presentación. Recuerda nuestro Excepto Recuerda, por ejemplo, con el archivo LS al principio, usando corchetes
dobles, doble igual y ah negativo igual interpretar cadena a la derecha como patrón glub shell para ser emparejado contra el valor a la izquierda, por ejemplo, el valor es igual a la válvula. De acuerdo, echemos un vistazo a este guión aquí. Esto es lo que he hecho. Creé mi valor de R uno y R dos, que son iguales. Y entonces yo de acuerdo aquí, me hice eco de la prueba, y utilicé la cita, comilla
simple y cita doble de tal manera que se mostrará exactamente lo que se muestra en la sección de prueba aquí. Y luego tienes los resultados. Por lo que tengo los corchetes simples con Div están entre comillas dobles solo volver con la variable sin cotización. corchete doble doble comillas, doble Drácula sin comillas y luego un tipo diferente de signo igual poniendo a signos iguales en lugar de uno poniendo lo mismo aquí para igualar signo un corchete, sin comillas y así sucesivamente. Entonces si ejecutamos disco adeudado, puedes ver muy bien los resultados aquí. Y habrá un buen ejemplo de cómo usar comillas simples y dobles y qué diferencia simplemente
hace al tener aquí corchetes simples o dobles. Entonces ves que cuando hacemos lo igual como este var uno Anvar a son iguales emparejó cuando lo
hicimos Al igual que esta barra quiere que Anvar no sean iguales, no suma en las comillas dobles con los corchetes dobles son iguales a doble comilla corchetes dobles sin comillas Son iguales y lo mismo aquí dis coincide Esto no iguala y esos son iguales y también esos. Entonces eso te da un buen ejemplo de comportamiento diferente, dependiendo de comillas dobles, corchetes
dobles, corchetes simples. Te invito mucho a meterte dentro del guión de la muerte y jugar con él. Cámbialo, modifícalo, romperlo en ellos. Diferentes pruebas. Ah, vamos a Seymour a la posible prueba que se puede hacer en la siguiente sección aquí.
9. Si prueba en los archivos: Está bien. Ahora, veamos qué tipo de pruebas podemos hacer. Archivos propios bajo enlaces para una lista completa de pruebas que puedes hacer en archivos. Sigue el enlace que está justo arriba aquí. Lo repasaremos rápidamente juntos después de esto, Pero permítanme primero quitar los resultados. Aquí. A ver qué tenemos aquí. Tengo un ejemplo. Uh, entonces aquí empezamos a definir un archivo en una variable. Y ahora pruebo para ver con la opción Dash ocho. Si el archivo existe, observe que en la sentencia if se utilizan paréntesis simples y como de costumbre, los
espacios son importantes. Ahora, aquí te muestro una prueba negativa. Este es un archivo que no existe. Entonces si el archivo no existe, vamos este bucle de lo contrario, porque este bucle
ahora, reinicio el archivo Desist, amor. Y luego revisé para ver si el archivo existe. Y luego revisé para ver si el archivo no es un directorio. Entonces vamos a cerrar esto y se pueden ver los resultados ahí mismo que mis virus como existen. Este no lo hace. Y este es un archivo regular, y no es un directorio Ahora echemos un vistazo rápido aquí a los detalles porque hay una lista
bastante extensa de opciones que puedes hacer. Eso, por ejemplo, éste lo hemos visto para ver si existe el archivo que equiparará a verdadero, aunque sea un directorio. Porque bajo Lennix, un directorio es sólo un archivo que tiene la propiedad de contener otros archivos. ¿ La unicidad para saber si se trata de un dispositivo especial de bloque? Un personaje correcto. Archivo especial. Lo sentimos Bloquear Archivo especial y director archivos especiales para más detalles sobre eso, puedes ver mis costos en el en Lenox. Todo es un archivo. Doy una muy buena explicación de lo que queremos decir con esto un dash DS para saber si es un directorio. Dashi es lo mismo que eso, ¿eh? Uh, tarde. Es un archivo regular. Entonces no un directorio, ni un enlace simbólico, Ni un bloque especial ni nada de eso. Tan solo un archivo normal llano. Uh, esto es spin off su enlace simbólico. Como se puede ver, hay bastante una extensa incluso hasta el punto de que en esto la prueba aquí, es cierto. expediente uno ha sido cambiado más recientemente que archivado. Hacer o un archivo uno existe y caer a él no. Entonces puedes ver que hay una lista bastante larga de pruebas extensas que puedes hacer en archivos dentro la sentencia if en el script bash eso te invito a pasar y modificar esas piezas de código ahí, uh, ver qué tipo de pruebas que puedes hacer en tu propio sistema de archivos.
10. Comparación de binaria: OK, ahora veamos a los operadores de comparación. Una vez más, usted tiene aquí la referencia que vamos a. Pasaremos para conseguirla rápidamente al final. En primer lugar quiero mostrarles algún operador específico bash. Esto crea una comparación binaria y se van a utilizar con enteros Onley sí exhibo en el script Qué sucede si lo usas con una cadena de cadena utiliza diferentes conjuntos de ah, operadores de comparación de
confort. Entonces echemos un vistazo aquí. Yo configuré tres variables ABC A y B es igual a una c igual a dos y hago eco de la información aquí y utilicé una sola cotización para asegurarme de que esto haga eco del dólar A y no del valor dentro del dólar ocho. Uh, ahora empecemos a pasar por la prueba que aquí logramos. Entonces en este caso aquí, comprobamos para ver si el dólar A es igual al dólar vencido. Y una vez más, hago eco usando la cita simple y doble donde sea necesario, para que en el resultado, veas la prueba que se ha realizado y los resultados que tienes Así que esta de aquí no es igual. Este operador ah es mayor que mayor o igual menor que menor o igual. Entonces procedo a establecer mi variable A y B en una cadena por palabra. Hola? Hola. Ellos son Deberían resultar en ser iguales. Excepto lo verás en el ejemplo. Y esos no son para ser utilizados para la fuerza. Entonces, vamos a cerrar esto aquí arriba. Pero eso es correr los resultados. Entonces tenemos la variable, y ahora se puede ver la prueba y el resultado que obtuvimos. Ahora, aquí es cuando intentamos, uh, comparar dos cuerdas. Este es el error que bash nos ha dado porque esperaba una expresión entera en su lugar. Y eso da como resultado no ser iguales, pesar de que las dos cuerdas eran en realidad las mismas. Ahora veamos cómo se ve. Si vamos a usar corchetes dobles en lugar de paréntesis simples, funciona el mismo peso siempre y cuando estés usando enteros Ah, para realizar a la comparación ahora funcionará diferente aquí una vez que lo cambie a string. ver que A y B no son iguales bien, y ejecuto la misma comparación aquí, pero sería doble corchetes vamos a ver los resultados rápidamente. En primer lugar, no da error, pero me está diciendo que a es igual estar en mis cuerdas a pesar de que no son iguales. Eso recordaba en esos comparativos. Son operador de comparación binaria, y se van a utilizar para enteros en Lee. En la siguiente sesión, miramos formas más comunes de hacer algunas pruebas.
11. Si con brantados: OK, ahora veamos formas más comunes de probar Uh, eso es malvado denota aquí, primer lugar. Ah, un poco de advertencia. Formas más comunes de probar significa más formas de confundirse sobre cómo funcionan las cosas. Combate un lenguaje feo con el que jugar. Muy fuerte, muy poderoso pero muy feo. Entonces primero, vamos a ver la diferencia en la sentencia if usando corchetes simples Dan usando corchetes
dobles y luego usando corchetes dobles como este el resultado de los siguientes tres scripts puede ser un poco confuso. Lo que es importante notar y recordar es que un solo corchete si la prueba funciona bien para comprobar si enteros o iguales o dobles iguales, esto no funciona muy bien en punto de corchetes simples siendo buenos para iguales o nada en todos. Los paréntesis simples no son confiables para ver lo menos al comparar con aquellos operador por los operadores
re funciona bien entre paréntesis individuales por los operadores enemigos es el que acabamos de ver. Así que echemos un vistazo rápido aquí al código para la comparación de enteros con corchetes simples. Entonces lo que hice en esos pelaje es que configuré ayuda variable, estar en C y luego he escrito la prueba actual, y he usado un corchete. Y he escrito que la cadena en la forma en que reflejará exactamente lo que está escrito aquí y el extremo menos le dice a Echo que no ponga una nueva línea al final para que esta o dis línea bien, echo al final de al final del 1er 1 Y yo también he añadido como si los resultados fueran correctos
o incorrectos. Entonces si cerramos, vayamos a mirar aquí abajo. Sí,
vamos, vamos, porque eso dio vuelta a los resultados para que veas que te dieron esta bien? Este,
correcto . Este se equivocaron, éste se equivocaron. Este se equivocaron. Este recorrido de un solo error. Ah, y así sucesivamente. Entonces, como decía, los paréntesis simples solo son buenos para esos dos signos aquí o para el operador binario que hemos visto en el pasado. Por lo que podría ser más fácil simplemente recordar usar un soporte único para operadores de baterías. Esa es la mirada a su causa. Esos resultados ahora ¿qué? Corchetes dobles. Por lo que aquí he hecho lo mismo. Se hizo eco de la actual desde lejos está escrito, y si notan que aquí hay dos que no estoy poniendo en este caso porque no funcionan. Entonces, vamos a ejecutar el resultado de eso. Y como puedes ver que ya mejor está consiguiendo a todos en este momento, si te has dado cuenta de esos dos aquí cuando miras el primer ejemplo en el segundo o realmente faltan en el segundo ejemplo, funcionan ligeramente diferentes. Los operadores anteriores también se pueden utilizar de la misma manera. Ahora usamos hacemos la prueba usando esos contadores corchetes y luego re intento test mencionado en bajo ejemplo. puede ver que lo consiguieron ahora mismo intentamos pruebas previas con esto. Esto provoca a los estadounidenses e intenta una asignación. Pero esto funciona propiamente, dissed funciona propiamente. Esto no funciona bien porque intenta y asignaciones entre un ser igual y esto es bueno. Esto es bueno. Entonces como puedes ver, la sentencia if con esos corchetes ofrece resultados de su más como otro lenguaje donde un simple signo igual básicamente dará asignación. ¿ Eso es probar para ver si son iguales? Eso usted? El solo de ello es que estás mejor para usar esos corchetes de contador y tus
sentencias if y luego te los paréntesis individuales para operadores binarios en la próxima sesión aquí. Y esperas Lo siento. Y se puede ver en el corto aquí al hacer operador binario usado corchetes simples y usar esos corchetes para hacer cualquier otro tipo de operación. Siempre un buen hábito de citar tu variable en la siguiente sesión, vamos a ver la comparación de cuerdas.
12. Para el bucle: De acuerdo, Ahora empecemos a buscar bucles. El 1er 1 que quiero mirar ¿a través de qué es el por amor? Una vez más, tienes un enlace a la documentación aquí. Uh, la estructura del grupo cuatro es muy simple. Cuatro artículos en menos hacen. Entonces es un poco de la misma estructura que la declaración if aquí, tenemos un ejemplo de un bucle de cuatro que pasa por un área. Mira el código aquí, que tú Así declaro un área que se basa separada de simple número. Por lo que cuatro artículo en. Y este es, ah, el formato para básicamente decirle a bash que use todos los elementos de la zona. Uh, hacer eco item. Entonces ese es un ejemplo
muy, muy sencillo. Y como cabría esperar esa lista cada elemento en el bucle for aquí, utilizo un bucle for para pasar por el argumento suministrado en la línea de comandos. Digamos cómo pasarías por el argumento que pones cuando llamas al guión. Entonces este es el formato para obtener el número de argumento que se ha pasado a descript. Si es igual a cero, básicamente
tenemos un error excepto uno frío. De lo contrario, imprimimos el número de argumentos, y lo pasamos ahora con, um, modo
órgano. Básicamente la línea de comandos de la columna de encabezado y todo es espacio. Separado se está agregando a los látigos de la línea de comando. Entonces ahí vamos. La longitud del argumento es de tres y tres Argumento por el que pasé. Ah, si te perdiste que este año es redirigir el error estándar a la salida estándar para que cuando evaluemos con un órgano, si hay un error, principip y el resultado en lugar de abrir y te buffer. Pero ahora puedo intentarlo sin argumento aquí quitándolos y se puede ver un suministro, una Serie de argumentos. Entonces esta es la simplicidad de un bucle for. En la próxima sesión, pasaré por la naturaleza contigo.
13. Mientras y hasta el loop: Ahora veamos rápidamente el bucle salvaje. Lo mismo que tienes un enlace a, Ah, documentación
más extendida en el ejemplo aquí utilicé un bucle while para pasar por un Neri eso. Lo mismo. Declaré aquí la misma variable. Entonces inicializo una variable a cero. Voy a deslindar una serie de artículo en la zona misma. Yo equidad y por buena medida. Y entonces es simplemente un tiempo. X es Bill O Arlen, que es el número de artículos en la zona lo hace eco. Y si quieres hacer un incremento en bash, tienes que ponerlo entre esos dos corchetes. Ah, es básicamente cualquier operación aritmética sobre dígitos se tiene que poner entre esos corchetes. Ahora estoy usando el mismo bucle aquí, pero para volver hacer un poco de referencia. Y la forma en que funcionaba la sentencia if con el corchete y la operación binaria y el
operador común . Entonces el bucle while es el mismo aquí. Ves que para poder usar ese símbolo, utilizo corchetes dobles. Puedo usar lo mismo que cualquiera de las declaraciones, solo corchete y usar un operador binario para hacerlo, también. Vamos a ejecutarlo rápidamente sólo por diversión, y se imprime a resultados, como esperábamos. Echemos un vistazo rápidamente al bucle de hasta. Es muy similar al bucle salvaje, excepto que se ejecutará hasta que resulte la prueba. Cierto. Ah, en lugar de mientras la prueba resulta falsa o verdad en el otro sentido. En fin, eso hago lo mismo. Declaro aireado. Obtengo el número de ítems excepto que hasta que X sea igual al número de ítems en la zona, hago toe loop en el interior. Lo mismo para aumentar x dos. Vamos a ejecutarlo sólo por buen ejemplo. Ahí vamos. Lo ejecuta como lo esperábamos.
14. Redirección de entrada: OK, ahora veamos la salida de entrada, redirección y los bucles. Ah, si no sabes nada de entrada y salida de una dirección, te
recomiendo que vayas a discutir aquí descriptores de archivo, redirección de
socket y sustitución de procesos. Ahí se explica con detalle. Um, aquí hay un enlace de referencia, como de costumbre. Uh, otra forma de controlar el bucle es especificando la entrada archivada a reedy desde normalmente se utiliza el comando read para esto siempre y cuando se ingresa o se alimenta en el bucle. Continúa cuando deja de venir en el bucle se rinde. Esto permite algún guión bastante inteligente. Cuando combinas este conocimiento con una buena comprensión del descriptor de archivo de tipo de archivo y socket, puedes controlar Alou alimentando datos de un archivo en un equipo remoto. Um, esta sección aquí es si presionas control C control Z para
evaluarlo, te imprimirá manual de ayuda del dedo del pie para la opción de lectura justo dentro de tu archivo orig. Ok, ahora, veamos el código en esta sección aquí, Así que primero definí declarar variable y le asigné el valor a una ruta para nombre de archivo que no existe. No creé el archivo con el toque de comando. Entonces procedo a emitir un comando fino en el directorio raíz. Hago esto porque se garantiza dar ah, error
estándar y salida estándar. Encomiaría eso dado? Porque alguna carpeta no tengo permiso para acceder a eso. Lo que está pasando aquí es que redirijo la salida estándar a un archivo, y luego procedo a redirigir el error estándar a la fuente de salida estándar, que entra en un archivo configuré el conteo de líneas permitido a cero, y luego inicio mi Wall Comando mientras loop eran leer comando en él. Y todo lo que hace Lucas es que incremente el campamento de línea. Esta es la redirección de entrada que ocurre aquí. Pongo ese símbolo y el nombre del archivo y leer leerá línea por línea que lo siguió hasta que esté vacío. Una vez hecho eso, imprimirá o alineará campamento. Entonces limpio. Tampoco necesitamos crear un bote que podamos crear. Podemos usar la sustitución de procesos que también se describe con más detalle en la clase que
te mostré antes, así que dijimos el recuento de líneas para cero el bucle while sigue siendo el mismo, iniciamos nuestra redirección de entrada. Pero en lugar de darle un nombre de archivo, le
damos una sustitución de proceso, y eso dará los mismos resultados. Ahora, veamos los resultados de ese comando. Si ejecuta el comando fino por primera vez, puede tardar bastante tiempo antes de que aparezcan los resultados. Yo. Es porque se han cobrado la búsqueda. De acuerdo, entonces tengo los dos datos aquí. Y si quiero hacerlo, tal vez puedas averiguar por qué los números de línea no son los mismos.
15. Ruso y continuar: buenos días. Terminemos rápidamente nuestra sección de bucle aquí. Vamos a terminar esto con explicación del break de elogio y continuar eso como suele tener un enlace de referencia. Genial Aquí echemos un vistazo primero a un Comando de descanso. Se utiliza para parar un poco antes de que sea normal. Terminando eso está buscando codificar aquí rápidamente disco Dhere Quieres exportarlo No se evalúa porque requiere la entrada del usuario. Entonces declaro función persona proceso vienen Y de ahí variable articular y mi lugar Todo el comando que se va a recibir como argumento en la variable cmd Y entonces
evalué y volví a devolver valor eso aquí. Si ingresas algo, llamará al comando PERL dice con la entrada que has dado Si recibimos un
valor de retorno por encima de cero, hacemos eco de un error. Si entras deja de fumar. Demostramos el comando break aquí Así que exportaré ese código presionando
control tú control C control vnt y desde ahí soy capaz de hacer ahí vamos O si solo pongo ls lo importa transfiere todos los comandos que realmente le estoy dando. Y si pongo “quit ad breaks”. Diluir rápidamente. Echemos un vistazo a continuar comando aquí para continuar una declaración, reanudarla aireación por un tiempo y hasta bucle También actúan igual para un lupin selecto el cual se verá más adelante. Si lo usa en un bucle for a la variable de control Tome el valor del siguiente elemento la lista cuando lo use en un rato o hasta que se reanude con el mismo bucle. No fue así. Daré un ejemplo aquí. Se trata de un comando continue utilizado en un bucle for. Entonces declaro en Eri lo paso si x termina siendo la posición número tres Esto es cuando enviamos comando continue y de lo contrario es X igual a X viejo es normal. ¿ Vas a ver terminar al Lupul? ¿ A qué te refieres con modificación? ¿ Aquí? Está arreglado que, uh Y como pueden ver, llegamos a nuestra tercera posición y enviamos a seguir elogiando, pero todo sigue yendo normalmente. Ahora echemos un vistazo en un rato. Entra aquí actúa de manera diferente. Por lo que declaré la zona pongo mi X igual a cero. Empiezo a pasarlo si golpeo la posición tres mando a continuar. Encomiar. Si elogias esto aquí afuera, terminarás con un bucle infinito porque cuando se envíe el continue, X seguirá igual trato no lo moverá a la siguiente posición. Entonces pongo ese atrevo la incriminación de X para que pueda continuar Si
no lo hace,
Si elogia no lo hace, la incriminación de los huevos y lo evalúas en modo órgano, te
mostraré aquí. Hagámoslo. Entonces vamos a entrar comenta esto fuera. Entonces si intento ejecutarlo ahora, la ejecución no se completará. Y parece menos. Si el iMac está estrellado, solo presiona control g para salir de la evaluación a mitad de período o en cualquier lugar eso que te muestre la diferencia y continuando entre el bucle for y un rato, o hasta que eso termine nuestras clases o sección en bucles. En el siguiente video, vamos a empezar a ver cómo pasas argumentos a, uh, tu guión
16. argumentos de las líneas de comandos: Buenos días. Uh, ahora echemos un vistazo a cómo pasamos argumentos a tu guión. Ah, pasando argumentos a tu guión, donde es muy similar a un argumentos pasantes a una función se puede acceder a
partir de Dólar Juan, Dólar dos y así sucesivamente. Entonces, primero echemos un vistazo y un ejemplo literal aquí, pasando por una lista de,
ah, ah, argumento de línea de
comandos con un bucle de cuatro. Por lo que abrí con ella bolsa y luego cuatro yo y esto está ensamblado para usar para actuar, probar todos los argumentos en un bucle para hacer eco dólar. Yo lo hice un guión muy sencillo y un modo de órgano aquí. Este es el argumento lleva que paso y voy a pasar dos argumentos más que voy a evaluar. Y como pueden ver, los
míos son Guan y todos los argumentos que pasé en la línea de comando. Entonces esa es una forma sencilla de pasar el argumento de la línea de comandos 30. Waría A for loop Echemos un vistazo a hacerlo con un eso salvaje. Yo inicio cero extra. Asigno todo argumento de línea de comando d a un área variable, llamo a nuestros huevos, y hago mi habitual mientras que X está por debajo del número off elemento y el área argh hizo eco M e incremento DX. Entonces si imprimo los resultados y puedes ver que mi opción de línea de comandos o por aquí aunque ¿cómo estás? Y se imprimen cada una en una sola línea en la siguiente sesión, o van a ver cómo se puede implementar el argumento de estilo Lennox en su guión, quiero decir, como, corta y larga Combinar opción que, di que haces ls Dash l ocho eso Vamos a ver eso en la próxima sesión aquí.
17. Argos de estilo Linux parte 1 (espacio separado): Entonces, ¿cómo implementamos argumentos de estilo Lennox en tu propio guión? Son tres formas comunes de hacerlo. Echemos un vistazo primero a la opción 1 al espacio Separado. Llamarías a tu guión con el método fall away Met. Uh, llamarías el nombre del guión, y luego podrías pasar en una opción corta. Deja un guión A o Dashti o Dash V. Si la opción toma un valor, pondrías un espacio en el valor. O podría usar el mismo método excepto con nombres de opciones largos que espacio y valor. Si requiere uno. Este método no termina todo mango. Opción de combinar permite un guión L ocho para proporcionar dos opciones. Echemos un vistazo al código aquí. Eso aquí, lo declaro tres variable. Ahora bien, esta técnica utiliza una técnica de valor clave. Maneja opción corta y larga la forma en que este programa Así crearía un bucle de cuatro como este año s O. Eso significa que mientras el número de argumentos en la lista de argumentos suministrados está por encima de cero, siga adelante. Asignamos el número uno a la clave. ¿ Revisamos el Dickey en caso de que en contra de todas estas opciones Aquí proporcionamos una
opción corta que la torta ensamblar que significa o en la declaración de caso. Por lo que también podría hacer. Y eso es un proporcionar un Not so que sería así que haría que esa opción disponible y buena hacia una línea de comando. Después asigné la opción de valor al número dos. Entonces, cuando hagas un bucle como este, siempre
será una forma clave de valor de verlo. ¿ Qué? Bueno, donde la primera parte es la opción. La opción corta larga opción que entra en clave, que es el número uno y el número dos se convierte en el valor de la opción en sí. Una vez que hayamos usado esas claves y valor, tenemos que desplazar el número de argumentos que aún están en o menos para usar. Básicamente, este de aquí así que hago un cambio a eso significa va a desplazar mi lista de argumentos por a eliminar al 1er 1 de la lista se cae en el siguiente para entrar en su lugar. Tan mismo cosa para el archivo dash. Ahora, Dash D no es una opción non que toma un argumento. Simplemente lo suministres o no lo haces. Y así sólo nos desplazamos por uno. Y esto de aquí es para cualquier otra opción que desconozcamos de grabación. No conocemos la opción,
Uh, Uh, y luego proporcionamos el comando de turno. Después de una vez todo esto hecho, simplemente
imprimimos el valor de nuestras tres opciones que configuramos. Entonces veamos cuáles son los resultados de este año. Por lo que una vez más, pasé mi argumento de línea de comandos a través de esta parte aquí, todo antes de la redirección de estándar, siempre. Entonces si lo hago así, ves eso? El argumento pasajero y consiguió todas mis opciones. Ahora mismo vamos por el fondo y proporcionemos una opción desconocida. Pero esto me está diciendo que no conoce la opción. Dash come ahora. Si fuera a hacer un error y proporcionar una opción para eso, creo que contendría un valor pero no está en el caso. Lo ve simplemente como una opción, y hay un error porque no sabe qué hacer con ella. Ahora. Si iba a intentar una sobre una opción combinada, ya
ves que no reconoce esas dos opciones en este punto. Entonces así es como implementarías un espacio separado Lennox tell arguments list en la siguiente sesión, vamos a ver de una manera diferente un método separado por igual.
18. Argos de estilo Linux parte 2: Entonces ahora veamos un método diferente. Vamos a mirar a los iguales separados. Ah, ¿lo haces? Tal es bastante similar al espacio uno, excepto que en lugar de un espacio ponemos signo desigual, este método tampoco termina toda opción de combinar. Entonces echemos un vistazo al código aquí es ligeramente diferente. El bucle es diferente en este caso para yo y esto significa que todo el argumento pasado por la línea de
comandos y luego hacemos un caso en la I. Y si nos fijamos en las opciones que tenemos son opción corta son signo igual y luego un
símbolo de estrella . Entonces básicamente, voy a contener toda tu opción de guión igual, termino. El valor se incluirá dentro de esa variable yo y abajo primera línea aquí realmente
extraemos lo que viene después del signo igual y lo asignamos a nuestro valor. Por lo que sólo necesitamos pasar por una misma cosa para el archivo dash y lo mismo para si no
conocemos las opciones. Entonces vamos a ejecutar rápidamente el script y ver los resultados hechos pasando así como tú, funciona exactamente como esperábamos. Funciona exactamente como el espacio separado excepto que ponemos signo desigual. Pero la estructura del código es ligeramente diferente. En la siguiente sesión, veremos usar get ups bash built en que esta vez sí toma una opción combinada.
19. Argos de estilo Linux parte 3.1 (getopts): Ahora veamos nuestra tercera opción para implementar argumento de estilo Lennox con temp bash Bail. Consigue oficial encomiar primero los levantamientos. Onley manejó opción corta. No hay opción larga en ella Pero también maneja, cambia o combina opción como dash V f o L s Dash L. A. Aquí
hay un enlace de referencia diferente. Apenas se arrastró hacia abajo a los levantamientos Una nota. Si corres, hombre y luego escribes get opt no s No es lo mismo. Por lo que los usos se levantan Nombre de cadena y argumentos entre corchetes aquí. Entonces, primero echemos un vistazo a más detalles sobre el uso. Así que levántate es un bash Bilton up string contenía la opción caracteres toe look, por ejemplo. O si G significa que estamos buscando las opciones cortas que se le debe pregunte a FSG o cualquier combinación. Entonces echemos un vistazo al código de ejemplo aquí. Entonces usando un bucle while mientras se levanta ups
en, uh, aquí pones las opciones que estás buscando y esta es la variable que se va a contener. Por lo que básicamente está pasando. En la primera opción se va a poner el nombre de la opción dentro de O P. T. Y ejecutarlo un eco. Entonces veamos los resultados aquí Así pueden ver que pongo aquí mis argumentos de línea de comandos, y los vive en ese mismo orden. Si fuera a cambiarlos así, cambiará los resultados. Y si yo fuera a mediados de uno, no
lo muestra. ¿ Y qué pasa si pongo otro que no estoy buscando? Se queja de una opción ilegal. Ahora. Si a un carácter le sigue una columna, se espera que la opción tenga un argumento. En tal caso, Get Ops juega el argumento en la variable, y es sensible a mayúsculas y minúsculas. O P. T A R G Kate. No, echemos un vistazo al código rápidamente aquí. Por lo que declaro alguna variable con la que jugar. Ahora, en este ejemplo de aquí, se espera que la opción f tenga un argumento. Por lo que estamos buscando la opción O g. Stand alone y se espera que F tenga un argumento. Esta es nuestra estructura clave aquí, donde asignamos valor a 20 p. T a r g. Cuando se trata de un aviso, y luego imprimimos nuestra opción Así que echemos un vistazo aquí si hago nuestro
argumento de línea de comando que soy enviando al bloque de código que se retira solo para que podamos ver el nuevo aire que vas y puedes ver nuestras opciones aquí mismo. Ahora cambiemos esto y pongamos un espacio para la opción dash F. No hace diferencia. Todavía lo coloca, y te das cuenta que no hay espacio entre aquí ahora. Si yo fuera en medio del argumento aquí, nos arroja un error que la opción requiere de un argumento. Sustituiré el argumento a donde va aquí. Nosotros lo ejecutamos, y ahí están nuestras opciones. Cada vez que se invoca, get UPS reproduce la siguiente opción en una variable y el índice del siguiente argumento a procesar en o p. T i N D. Esa es una variable una vez más, sensible a mayúsculas y
minúsculas. Si bien esta variable es B se establecerá en una cada vez que se involucre el script de Shell, no
se restablece automáticamente después. Si vas a llamar a get ups varias veces, esa variable tiene que ser restablecida manualmente. Entonces vamos a echar un vistazo al ejemplo aquí. Entonces declaro mi variable con la que jugar y hago eco de lo que la variable OPD I Andy? Está ambientado. Cuando se inicia el guión, paso por las opciones y hago eco de esa variable cada vez que pasamos por el bucle. Entonces lo verás subir Ahora estamos más allá de ese bucle while y te doy esa misma variable aquí. Ahora estamos intentando rehacer el mismo bucle sin restablecer el dedo del pie variable uno y luego veremos qué sucede. Entonces, vamos a ejecutar los resultados aquí. Mis opciones son las mismas. Son viejos,
válidos, válidos, por lo que puedes ver que empezamos por una. Después vamos a a Luego vamos a tres y luego vamos a cinco porque el último tiene
opción . Ahora estamos intentando rehacer el mismo bucle sin restablecerlo. Y se puede ver llegamos al último eco sin hacer nada aquí abajo del final mientras Lupus termina porque no lo reiniciamos. Entonces sólo recuerda, siempre
es un buen hábito. Una vez que termines de usar upto get ups, siempre restablece esa variable de nuevo a una
20. Argos de estilo Linux parte 3.2 (error de getopts): guarde no, veamos los levantamientos y errores por defecto, encuentra un mensaje de
error o impreso con una opción inválida o argumento de opción de desorden. Por lo que el siguiente script no proporciona un argumento para la opción mina para la opción F. Como se puede ver aquí atrás, el código es muy similar a lo que hemos visto antes Mostramos que se espera que tenga, ah, argumento, y no tiene. Entonces vamos a ejecutar descript aquí y se puede ver que tenemos, ah, error quejándonos del argumento requerido que falta si se utiliza el primer carácter y cadena arriba como modo de silencio de columna. Entonces aquí tenemos el mismo código, excepto que empecé con una llamada aquí y las opciones son las mismas. Me faltan los argumentos para la opción F. Así que si ejecuto este guión aquí, no se queja de ello. Si la variable o p. T err excepto cero, no se imprimirá ningún mensaje aunque no utilice voto silencioso. Entonces voy por el mismo error otra vez. No tengo modo silencioso, pero lo dije. Uh oh, Petey, errar a cero. Entonces eso es correr ese guión aquí. Y a pesar de que me falta la opción y no soy Ah, en modo silencioso, todavía no
se imprime más cerca cuando una opción inválida isse encontró el valor tendría una pregunta Marcar se coloca en nombre argumentos upped es unset y un diagnóstico mensajes impresos por get ups. El bloque de código suministrará una opción inválida Dash X, que podemos ver aquí. Ahora el código está de vuelta al mismo que lo teníamos, excepto en una declaración de caso. Si mi O p. T. es igual a una mente de pregunta, eso significa que nos encontramos con una opción inválida. Entonces vamos a ejecutar el guión aquí y ahora vemos el mensaje de error impreso por los levantamientos y el mensaje que imprimí en la declaración de caso. Entonces y si get ops está en modo silencioso, el objetivo
arriba se establece en el carácter de opción de opción encontrado. Eso dará un ejemplo rápido aquí. Mira el código rápidamente, así que es el mismo código. Aún así, estoy en modo silencioso cuando me encontré con el error. Por lo que los valores un signo de interrogación de OPD imprimiré O p t a r g, y verás a qué nos referimos con esto. Entonces ya ves, tengo una opción inválida. Huevos. Es su valor. Lo almacenaba duro. Si falta un argumento requerido y get ops no es silencioso, un signo de interrogación su lugar en nombre y opt argumenta mensajes de inicio y diagnóstico impresos. Por lo que en el caso de escritorio aquí, OPD err se establece en cero. No estamos en modo silencioso. Me encontraré con esa pregunta. Mark y yo imprimiremos la misma variable O P t y o P. D a R g. Así que veamos los resultados de ese único argumento faltante detectado. Obtener aswell mostrar un mensaje de error Así que ves que no hay sección interior de valor aquí. Último punto sobre get ops un error si falta un argumento requerido y get ups es silencioso. A colonise colocó nombre arriba Argus establecido a la opción encontrada y muriendo Mensaje de diagnóstico no se imprime. Entonces veamos esto tan bien, pondría este dedo del pie. Uno sólo suprimiría los mensajes de error, pero estamos en modo silencioso, así que miro o no el signo de interrogación, sino una columna e imprimo los mismos mensajes de error que antes para que puedas ver
argumento faltante detectado get obsoleto. No esta reproduce un mensaje de error, y sabemos que es la opción dash F que requiere en argumento. Por lo que en la siguiente sesión de clase, vamos a ver cómo hacer menús con Cilic incorporado para permitirte construir lo que
se llama interfaz de usuario de texto T u wy.
21. Crea menús con SELECT: bienvenidos en esta sesión aquí vamos a aprender a hacer menús con Selig built in command. Uh, no. Ese descripto en esta sección aquí producen guiones interactivos, por lo que necesita ser ejecutada una terminal. Es necesario exportar a código. Uh, el selecto construido y hace que sea fácil de mostrar y menú de directiva al usuario en un destructor de interfaz de
línea de comandos . El estructura es seleccionar palabra en menos y luego hacer lo que hay que hacer y luego hecho. Entonces es algo así como un rato. La lista de bucle se expande y a partir de ella se ha generado una lista de elementos. Se imprime la expansión al error STD. debe
exportar el descriptor de archivo número dos debido a la naturaleza interactiva de la descriptiva . Entonces echemos un vistazo al código aquí. Por lo que el siguiente script te dará un menú de todos los directorios en tu directorio de inicio . Y después de hacer una selección, lo hará todos los archivos en ese directorio. Entonces lo que está pasando es en primer lugar, hacemos un bucle, luego seleccionamos el nombre aquí va a ser lo que ella era una variable. Esta de aquí es nuestra lista. Por lo que esta primera sección pondrá todos los directorios de tu directorio de inicio en esa lista. Y luego también agregamos el premio extra Quit. Empezamos nuestro do loop. Ahora. Si la variable el i r es igual que dejar de fumar, salimos. De lo contrario vamos es el contenido. Entonces vamos a exportar disco adeudado ir a una consola y este es un sencillo selecto. Entonces este es todo el contenido de mi directorio de inicio. Directorios más antiguos. Por lo que pelean selecto tres. Dura el contenido de mi directorio de documentos. Y si tuviera 14 se rinde. Descript sub menús anidados Seleccionar instrucción crea sub menús. Entonces echemos un vistazo a esto aquí. Entonces empezamos lo mismo, pero primero aquí empujamos el directorio o home. De acuerdo, Push D es una mejor alternativa para cambiar de directorio en el script. De acuerdo, Bash guarda un montón de drogas de directorios más antiguos. Entonces lo que estamos haciendo es que estamos empujando su directorio de inicio en la parte superior de esa pila. El motivo por el que redirigir un slash muertes nacional es porque cada vez que llames a Posey o Pop D, imprimirá la pila de directorios a las ETS. Por lo que ponemos nuestro propio directorio en la parte superior de la pila y luego Select Star. Ninguno sólo directorios todos los archivos y habíamos dejado de fumar. Lo mismo aquí. Si encontramos dejar de fumar, salimos. Si es un directorio, empujamos un directorio. Encima de esa pila seleccionamos para sub d i r star y volver. De acuerdo, Si el sub pelo está de vuelta, rompemos el lazo. Por lo que volvemos a caer en nuestro bucle de padres aquí. Si se trata de un archivo, imprimimos un contenido. Tenga cuidado que, mientras selecciona para ejemplos y archivo o archivo binario, puede imprimir un largo, largo tiempo. Si es un directorio,
Bueno, Bueno, ¿es el contenido de ese directorio? Este año no debería suceder. Entonces hasta que nos devolviéramos el golpe, se rompería. Y entonces se reventaría el directorio que empujamos justo aquí. Entonces si no es un directorio, si es un archivo, simplemente no
podemos el contenido del mismo. Y al final de ella re pop nuestro propio directorio re empujado en la parte superior. Entonces vamos a exportar. Y eso sería Ah, vamos a ver, eso es el año pasado. Selecciona sub. De acuerdo, entonces vamos a ejecutar el manuscrito Select siete. Entonces este es todo mi contenido dentro de mi directorio de inicio. Entonces si vendo como 16 test que s H archivo destino
, imprime el contenido. Si empujo bajo sin nada, su simplemente vuelve a imprimir el mismo Select Luke. Entonces si iba a entrar en tres mis documentos, he entrado a ese directorio y se imprime su contenido. Entonces si reviso prueba, es h ahí. Es un archivo diferente. Y si miro en otro directorio número cuatro, me imprime el contenido. Pero sigo en el mismo bucle. Por lo que fresco siete para atrás y estoy de vuelta en mi directorio de inicio, 20 para dejar de fumar y el guión está hecho. Entonces eso es todo para la clase de fundamentos y principiante para introducción al scripting en Bash en la siguiente sesión, me gustaría hablar de un proyecto que me gustaría que probaras.
22. El proyecto: Ahora hablemos de un proyecto para practicar prácticamente todo lo que has aprendido. Lo que propongo que hagas es propongo que uses bash scripting para crear un gestor de
archivos ah muy sencillo . No tiene por qué tener muchas características. Puedes elegir el futuro como quieras. Y a medida que avanzamos hacia el tema de avance de Mawr, vamos a elaborar en ese script de administrador de archivos. Por lo que he incluido una versión dos de ese ese gestor de archivos. Ambos tampoco tienen la misma funcionalidad. Eso voy a describir la forma en que se ingresa en modo de orden aquí, por lo que tiene sentido para ti. Uh, primera sección de código que vemos aquí se llama exportación de script. Si quieres exportar esa versión del gestor de granja, vas en ese código y presionas la función de exportación Control controlas C controlar lo profundo, por lo que esto exportará todo el pelaje. Echemos un vistazo dentro de ella. En realidad no hay código ahí dentro. El único es que éste incluye referencia a la otra sección de código. El motivo por el que ha hecho así. Es porque esto es todo un guión interactivo modo orig no es bueno. Es bueno evaluando. Pero es donde más complejo cuando se quiere hacer scripting interactivo. Por lo que para evitar errores cada uno de los siguientes apartados o cada uno de la función. De acuerdo, así que puedes mirarlos a cada uno y muy, muy separados una manera aislada. No pueden ser evaluados. No se pueden exportar. Si quieres exportar tu exportación, ésta de aquí, que se referirá a cada uno de los otros pelajes, no
voy a pasar exactamente como se hace, cosa que escuchas. Si tienes pregunta que quieres elaborar sobre eso, únete a mí en mi grupo de Facebook y publica en eso. OK, esta es otra versión de descript. Utiliza Mawr para seleccionar eso construido en función que platicamos en una de las versiones anteriores . También tiene una característica diferente donde se permite cambiar el nombre de un archivo. Entonces te dejaré pasar por esos códigos aquí, darte algunas ideas y llegar a un guión para hacer Un sencillo gestor de archivos no necesita
tener muchas características. Um, si requieres ayuda, nuestra aclaración únete a mí en mi publicación de grupo de Facebook allá. Si hay duda sobre mis funciones. Te lo describiré felizmente. Pero me gustaría dejarle un ejercicio de su propio juicio por un poco y publicar su proyecto en mi escala. Sección Proyecto Cerda Gracias por seguir esta clase y,
uh, uh, espero que te unas a mí en cualquier clase futura para Lennox.