Tienes que ir haciendo la macro en el editor: no va a aparecer toda junta escrita, ni lo va a estar si tú no la escribes; entonces vete abriendo el editor y vas rellenando al ir contestando a las preguntas del sistema te diga.
Recuerda que, en algunos sistemas, puedes copiar desde el navegador y pegar en el editor cuando te sea cómodo.
A veces el sistema va tomando nota de tus respuestas, para ver si son coherentes con las siguientes. Si tienes que cortar y cierras sin más, tendrías que volver a empezar de cero la próxima vez. Para evitar eso, hay un botón que dice 'Parar' Púlsalo y guardará una cookie con los datos de por donde vas. Para continuar en otra ocasión, tendrás que usar el mismo navegador en el mismo equipo.
Cuando tengas el editor preparado, empieza viendo el enunciado.
./macro.sh casa portal
Entonces, tras la llamada, el fichero casa
se llamará portal
y el fichero que antes era portal
, ahora se llamará casa
.
Asegúrate que entiendes el enunciado antes de continuar. Pregunta al profesor si no lo ves claro.
¿Entendido?, pues
Empezamos preparando la primera línea de la macro, con #!/bin/bash
, y los comentarios que creas oportunos. Vamos con los comandos.
No podemos directamente cambiar de nombre al primero y ponerle el de segundo (ni lo contrario) porque nos va a decir que ese nombre ya existe: no puede haber dos ficheros con el mismo nombre en el mismo directorio. La estrategia que vamos a usar es cambiar de nombre al primer fichero por otro arbitrario, para a continuación pasar su antiguo nombre al otro fichero. Entonces nos aparecen tres comandos: dos para cambiar al primer fichero de nombre, pasando por el arbitrario y uno para cambiar al segundo.
Vamos a ver cómo organizamos la macro
Plantilla a poner | |
...
comando A
comando B
comando C
... |
El intérprete de comandos no los mira todos y decide el orden, sino que lo ejecuta directamente por el orden que lee, sin pensar Así que éste comando se hará lo primero.
Cuando esté hecho el primero, sea lo que sea lo que haya pasado, hará éste el segundo, y así sucesivamente los demás
|
comando para listar el contenido de este directorio en otro fichero
comando para pasar todo el contenido de este directorio a otro
comando para meter las imágenes en el comprimido
comando para cambiar de formato las imágenes
comando para pasar los wav al suyo
comando para borrar todo lo que quede
1->aux aux->2 2->1
Ponlos a continuación por el orden que hay que ejecutarlos, separados por espacios:
1->aux 2->1 aux->2
1->aux aux->2 2->1
2->1 1->aux aux->2
jkfdshre
Por supuesto, puede usarse cualquiera que sepas que no va a existir. (Fallaría si ese nombre absurdo existiese; si quieres saber más de lo que se pide en el curso para resolver esto de forma definitiva, pulsa aquí)
El comando para cambiar el nombre de un fichero es mv
Vamos a ver cómo usamos un comando con uno de los datos que se le pasan a la macro
Plantilla a poner | |
comando...
$nº...
|
Donde haya que poner el valor se empieza poniendo un $
Después se pone el número del dato en la llamada a la macro (1 si es el primero, 2 si es el segundo, etc.)
|
origen
en nuevo
pondremos:
santander
en el subdirectorio oviedo
, pondremos:
fich
que está en el subdirectorio sub
, pondremos:
oviedo
no es el segundo. Es el tercero.
jkfdshre
el nombre del fichero cuyo nombre va justo detrás de la macro
cp $2 jkfdshre
mv $2 jkfdshre
cp jkfdshre $1
mv $1 jkfdshre
cp
es para hacer una copia, no para cambiar el nombre.
cp
es para hacer una copia, no para cambiar el nombre.
jkfdshre
(antiguo primer fichero) por el del segundo.
Ponlos y ya tienes la macro. Pruébala con ficheros que no importa que se destruyan. Si te atascas con algo, consulta al profesor.