Título: Problema script bash Publicado por: hervasiop12345 en 28 Mayo 2011, 17:26 pm Buenas. Estoy intentando hacer un script que muestre los ficheros que hay en un directorio(texto,carpetas,ficheros especiales y ejecutables). Este puede recibir o no como parámetro el directorio. El caso es que me da error en la variable a la que asigno el directorio. Os dejo el código y gracias por las molestias.
Código: #!/bin/bash if [ -z $1 ] then echo "La clasificación de ficheros del directorio $(pwd) es:" directorio=`pwd` elif [ ! -z $1 ] then echo "La clasificación de ficheros del directorio $1 es:" directorio=$1 fi $ntext=`file $directorio/* |grep -c "text"` $text=`file $directorio/*| grep "text" | cut -f 1 -d ":"` $ndisp=`file $directorio/* |grep -c "device"` $disp=`file $directorio/*| grep "device" | cut -f 1 -d ":"` $ndire=`file $directorio/*|grep -c "directory"` $direc=`file $directorio/*| grep "directory" | cut -f 1 -d ":"` $nejec=`file $directorio/*|grep -c "executable"` $ejec=`file $directorio/*| grep "executable" | cut -f 1 -d ":"` echo "Hay $ntext fichero/s de texto: $text" echo "Hay $ndisp fichero/s de dispositivo: $disp" echo "Hay $ndire directorio/s: $direc" echo "Hay $nejec fichero/s ejecutables: $ejec" Título: Re: Problema script bash Publicado por: leogtz en 28 Mayo 2011, 20:13 pm Prueba esto:
Código
Título: Re: Problema script bash Publicado por: hervasiop12345 en 29 Mayo 2011, 22:23 pm gracias , me ayudó a encontrar el error. Para asignar a las variables sobraba el "$". Dejo el código terminado.
Código: #!/bin/bash if [ -z $1 ] then echo "La clasificación de ficheros del directorio $(pwd) es:" echo directorio=$(pwd) elif [ ! -z $1 ] && test -d "$1" then echo "La clasificación de ficheros del directorio $1 es:" echo cd $1 directorio=$1 else echo "Llamada incorrecta" fi if test -d "$directorio" then ntext=`file * |grep -c "text"` text=`file * | grep "text" | cut -f 1 -d ":"` #grep -c:visualiza el número de líneas que contienen la expresión text ndisp=`file * |grep -c "device"` disp=`file * | grep "device" | cut -f 1 -d ":"` ndire=`file * |grep -c "directory"` direc=`file * | grep "directory" | cut -f 1 -d ":"` nejec=`file * |grep -c "executable"` ejec=`file * | grep "executable" | cut -f 1 -d ":"` echo "Hay $ntext fichero/s de texto:" echo echo "$text" echo echo "Hay $ndisp fichero/s de dispositivo:" echo echo "$disp" echo echo "Hay $ndire directorio/s:" echo echo "$direc" echo echo "Hay $nejec fichero/s ejecutables:" echo echo "$ejec" fi |