
Consejos o trucos para aprender scripting
Publicado por Raúl (9 intervenciones) el 20/11/2013 22:53:36
Hola buenas , tengo un gran problema, no consigo dominar el uso del shell scripting. Me mandan hacer ejercicios por mi cuenta y no soy capaz de empezar a penas, alguien sabe algun truco? y eso que los script que hacemos en clase son sencillos, algunos tienen más facilidad para aprender a manejarlo pero otros no.. Yo soy uno, ojala tuviera un don o algo jejeje. Alguien me puede conseguir unos ejercicios sencillos? el enunciado quiero decir para ir practicando?
Hacemos script de tipo como este de los que ya tienen alguna complicación:
ó de este otro tipo.
Cuando me ponen un enunciado diciendome tengo que hacer un script que haga tal tal tal y cual y pascual. Y no consigo sacarlo. Algunos trucos o pasos? Perdón por lo larga que es la duda.
Un saludo.
Hacemos script de tipo como este de los que ya tienen alguna complicación:
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
clear
if [ -e $1 ] ; then
inodo=`ls -i $1 | cut -d" " -f1`
busqueda=`find ~/ -inum $inodo`
for i in $busqueda
do
rm $i
done
else
echo "El fichero $1 no existe"
fi
ó de este otro tipo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
gencontra(){
declare -a dat
dat=(1 B c 2 f G h 0 a X z 3 4 5 6 7 8 9 d I J K ?)
contrasenia=""
for var in `seq 6`
do
let num=$RANDOM%${#dat[*]}
contrasenia=$contrasenia${dat[$num]}
done
}
# let num=$RANDOM%20
clear
rm -f clavesusuarios.txt
nlineas=`wc -l /etc/passwd | cut -d" " -f1`
for (( i=1 ; i<=$nlineas ; i++ ))
do
# nos quedamos con cada linea
linea=`head -$i /etc/passwd | tail -1`
id=`echo $linea | cut -d":" -f3`
if [ $id -ge 1001 -a $id -le 2000 ] ; then
nombre=`echo $linea | cut -d":" -f1`
# vamos a ejecutar la función
gencontra
echo "$nombre : $id : $contrasenia" >> clavesusuarios.txt
sudo cambio.sh $nombre $contrasenia
fi
done
Cuando me ponen un enunciado diciendome tengo que hacer un script que haga tal tal tal y cual y pascual. Y no consigo sacarlo. Algunos trucos o pasos? Perdón por lo larga que es la duda.
Un saludo.
Valora esta pregunta


0