Linux/Unix Shell Scripting - NOVATO CON PROBLEMAS

   
Vista:

NOVATO CON PROBLEMAS

Publicado por pedro (3 intervenciones) el 19/02/2018 11:17:25
Buenas a todos.

Estoy empezando a darle cariño a los scripts en bash y una tontería me tiene mareado que no sé por donde meterle mano. Estoy seguro que es una tontería pero por más que le doy vueltas no doy con la tecla.

Es un ejercicio muy simple. Pasamos el script con dos parámetros para crear un fichero con un nombre A y un tamaño B. Si falta algún parámetro el script debe crear el fichero con un nombre o tamaño preestablecido.

La cosa es que aunque cambie el orden de las sentencias IF siempre se me mete en la primera de la lista.

Muchas gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
 
echo "script $0"
echo "primero $1"
echo "segundo $2"
echo "$#"
 
 
if [ -n $1 ] && [ -z $2]; then
	echo CREACION CON NOMBRE DE ARCHIVO
	dd if=/dev/zero of=$1 bs=1024 count=1
elif [ -z $1 ] && [ -n $2 ]; then
	echo CREACION CON size
	dd if=/dev/zero of=archivo_vacio bs=1024 count=$2
elif [ -n $1 ] && [ -n $2]; then
	echo CREACION CON DOS PARAMETROS
	dd if=/dev/zero of=$1 bs=1024 count=$2
fi
 
echo HOLA2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

NOVATO CON PROBLEMAS

Publicado por pedro (3 intervenciones) el 19/02/2018 11:38:39
Solucionado. La cosa queda así. Me tenía mareado el tema de pasar $2 sin pasar $1 pero había leido mal el ejercicio

Un saludo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
 
echo Este es el primer parametro $1
echo Este es el segundo parametro $2
 
if [ $1 ]&&[ $2 ]; then
	echo 'EXISTEN $1 y $2'
	echo 'CREACION CON DOS PARAMETROS'
	dd if=/dev/zero of=$1 bs=1024 count=$2
elif [ $1 ]&&[ !$2 ]; then
	echo 'EXISTE $1 PERO NO EXISTE $2'
	echo 'CREACION CON NOMBRE DE ARCHIVO'
	dd if=/dev/zero of=$1 bs=1024 count=1
elif [ !$1 ]&&[ !$2 ]; then
	echo 'NO EXISTEN $1 NI $2'
	echo 'CREACION SIN PARAMETROS'
	dd if=/dev/zero of=archivo_vacio bs=1024 count=1
 
fi
 
echo he llegado al final
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

NOVATO CON PROBLEMAS

Publicado por pedro (3 intervenciones) el 19/02/2018 13:04:54
Los he ido perfeccionando hasta aquí. Sugerencias?

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
 
if [ $1 ]; then
	FILE="$1" ; else
	FILE="archivo_vacio"
fi
if [ $2 ]; then
	SIZE="$2" ; else
	SIZE="1"
fi
dd if=/dev/zero of=$FILE bs=1K count=$SIZE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad