muy urgente!!! ayuda con shell scripts de SUSE LINUX

Nos han mandado este ejercicio y no se hacerlo, ni yo ni nadie de mi clase poruque casi no hemos dado ifs.
Hecho lo tengo, el problema es que no se como hacer los ifs anidadados, y mira que he probado versiones diferentes...

Lo unico que falta en el script es para que cuando lo ejecutes de un mensaje si:
-No pones nada
-Pones el numero 0
-Pones mas de un parametro que solo coja el primero intorducido.

*****************************************************

Realizar un script llamado campo que liste uno de los campos de la orden ls -l. El número del campo a extraer se le pasa como parámetro posicional cuando llamamos al script.


#!/bin/bash

if [ $1 –gt 8 ]
then
echo Solo hay 8 campos y tu has puesto $1
else
ls –l | sed “s/ */ /g” | cut –f $1 –d “ “
fi

*****************************************************

NECESITO AYUDA!
muchas gracias por adelantado!
No tengo muy clara tu duda... pero básicamente querrás algo como:

if [ ... ] ; then
    : codigo
elif [ ... ] ; then
    : codigo
else
    : codigo
fi


Si te explicas un poco mejor, podremos echarte un cable :)

- ferdy
Elif no me va...

El problema es este :

Realizar un script llamado campo que liste uno de los campos de la orden ls -l. El número del campo a extraer se le pasa como parámetro posicional cuando llamamos al script.

Al ejecutar el script CAMPO (./campo), has de poner un parametro que sea un numero para que te saque la columna a la cual corresponde.
Como solo hay 8 columnas, si pones un numero mayor de 8 ha de dar un mensaje (esto ya lo tengo).
Lo que me falta es para cuando pones un 0, no pones nada, o cuando pones mas de un parametro que coja solo el primero...

A esto sumale que solo sabemos hacer :

if [ condicion ]
then
accion 1
else
accion 2
fi

Y que no se como hacerlo, espero que ya este mejor explicado...
Gracias!
elif si funciona, ES la forma de hacerlo. Period.

[ $ ~ ] bash campo.sh
Te olvidaste los argumentos.
[ $ ~ ] bash campo.sh 1
Tu código va aquí
[ $ ~ ] bash campo.sh 2
Tu código va aquí
[ $ ~ ] bash campo.sh 0
Soy un 0.
[ $ ~ ] bash campo.sh 14
Qué fumaste?


¿ viste ?

- ferdy
No entiendo ese codigo... :(
Lo siento pero mi conocimiento de linux es baste limitado... [decaio]



#!/bin/bash

if [ $1 –gt 8 ]
then
echo Solo hay 8 campos y tu has puesto $1
else
ls –l | sed “s/ */ /g” | cut –f $1 –d “ “
fi

Esto es lo que tengo hecho yo sin que me de error...
puedo poner varios elif seguidos sin cerrar? o como los pongo?
es que lo de que no me iban los elif es porque los he puesto y me ha dado error...

gracias de nuevo
Ponlo como te he explicado antes:

if [ condicion ] ; then
    # codigo
elif [ condicion2 ] ; then
    # codigo 2
elif [ condicion3 ] ; then
    # codigo3
else
    # otro codigo
fi


- ferdy
5 respuestas