Foros del Web » Programación para mayores de 30 ;) » Programación General »

problema programcion shell if

Estas en el tema de problema programcion shell if en el foro de Programación General en Foros del Web. hola tengo un duda con un if q no me funciona IFS=" " for i in `ls -la $directorio` do if $i|grep "^-" then echo ...
  #1 (permalink)  
Antiguo 03/12/2010, 10:58
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 14 años, 5 meses
Puntos: 0
problema programcion shell if

hola tengo un duda con un if q no me funciona

IFS="
"
for i in `ls -la $directorio`
do
if $i|grep "^-"
then
echo $i

fi

done

el for me anda los mas bien , el error es que no me entra al if , lo que quiero hacer es que me liste los que no son directorios.
gracias y espero sus respuestas
  #2 (permalink)  
Antiguo 03/12/2010, 11:05
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 6 meses
Puntos: 11
Respuesta: problema programcion shell if

Yo usaría más el comando find:

Código Bash:
Ver original
  1. find . -type f -maxdepth 1 -exec ls -la {} \;
__________________
JF^D Perl Programming en Español
  #3 (permalink)  
Antiguo 03/12/2010, 11:18
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: problema programcion shell if

Cita:
Iniciado por jferrero Ver Mensaje
Yo usaría más el comando find:

Código Bash:
Ver original
  1. find . -type f -maxdepth 1 -exec ls -la {} \;
y el error del if sabes cual es???
  #4 (permalink)  
Antiguo 03/12/2010, 11:25
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 6 meses
Puntos: 11
Respuesta: problema programcion shell if

Estás poniendo un '|' detrás de $i, pero eso no es correcto. $i no es un comando.

Debería ser algo así, con un echo $i|grep ...

Y si '^' corresponde a una expresión regular, quizás debas usar egrep en lugar de grep.
__________________
JF^D Perl Programming en Español
  #5 (permalink)  
Antiguo 03/12/2010, 11:29
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 6 meses
Puntos: 11
Respuesta: problema programcion shell if

También funciona de forma directa:
Código Bash:
Ver original
  1. IFS="
  2. "
  3.  
  4. for i in $(ls -la $directorio | egrep "^-")
  5. do
  6.         echo $i
  7. done
__________________
JF^D Perl Programming en Español
  #6 (permalink)  
Antiguo 03/12/2010, 11:54
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: problema programcion shell if

Cita:
Iniciado por jferrero Ver Mensaje
También funciona de forma directa:
Código Bash:
Ver original
  1. IFS="
  2. "
  3.  
  4. for i in $(ls -la $directorio | egrep "^-")
  5. do
  6.         echo $i
  7. done
dale gracias ,
otra duda despues quiero igualar el resultado a una variable pero me da error algo asi hago:
tamaño=`echo $i | awk '{print $5}'`
cuando imprimo por pantalla tamaño me tira ño .
Lo que quiero hacer es tomar el tamaño del archivo
  #7 (permalink)  
Antiguo 03/12/2010, 12:02
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 6 meses
Puntos: 11
Respuesta: problema programcion shell if

No puedes usar caracteres 'extraños' en bash. Cambia la 'ñ' por otra letra.
__________________
JF^D Perl Programming en Español
  #8 (permalink)  
Antiguo 03/12/2010, 12:15
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: problema programcion shell if

Cita:
Iniciado por jferrero Ver Mensaje
No puedes usar caracteres 'extraños' en bash. Cambia la 'ñ' por otra letra.
como puedo hacer para que solo me de el tamaño a la variable y noo me tire nada por pantalla
  #9 (permalink)  
Antiguo 03/12/2010, 12:25
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 6 meses
Puntos: 11
Respuesta: problema programcion shell if

tamano=$(echo $i |awk '{ print $5 }')
__________________
JF^D Perl Programming en Español
  #10 (permalink)  
Antiguo 03/12/2010, 12:38
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: problema programcion shell if

Cita:
Iniciado por jferrero Ver Mensaje
tamano=$(echo $i |awk '{ print $5 }')
otra duda ,
si yo quiero agarrar ese tamaño y segun que tamaño sea imprimir algo ejemplo algo asi:
el tamaño me lo tomo como un numero?
if [ $tamano < 600 ]
then
echo"hola"
fi
fi
  #11 (permalink)  
Antiguo 03/12/2010, 12:50
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 6 meses
Puntos: 11
Respuesta: problema programcion shell if

Hay que leer un poquito más, el manual de Bash...

Código Bash:
Ver original
  1. #!/bin/bash
  2.  
  3. directorio='.'
  4.  
  5. IFS="
  6. "
  7.  
  8. for i in $(ls -la $directorio | egrep "^-")
  9. do
  10.         tamano=$(echo $i |awk '{ print $5 }')
  11.  
  12.         if [ $tamano lt 600 ]
  13.         then
  14.                 echo $i
  15.         fi
  16. done
__________________
JF^D Perl Programming en Español
  #12 (permalink)  
Antiguo 03/12/2010, 12:55
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: problema programcion shell if

[QUOTE=jferrero;3659114]Hay que leer un poquito más, el manual de Bash...

[HIGHLIGHT="Bash"]#!/bin/bash

directorio='.'

IFS="
"

for i in $(ls -la $directorio | egrep "^-")
do
tamano=$(echo $i |awk '{ print $5 }')

if [ $tamano lt 600 ]
then
echo $i
fi
done
[/HIGHLIGH


algun manual bueno y en español
muchas gracias
  #13 (permalink)  
Antiguo 03/12/2010, 13:02
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 6 meses
Puntos: 11
Respuesta: problema programcion shell if

Google me da este:
http://es.tldp.org/COMO-INSFLUG/COMO...og-Intro-COMO/

y algunos más.
__________________
JF^D Perl Programming en Español
  #14 (permalink)  
Antiguo 03/12/2010, 13:32
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: problema programcion shell if

hola tengo otra consulta yo lo que tengo que hacer es que me pasen un directorio y me muestren los archivos del tal tamaño.
pero no se que error tengo con el tema del directorio tee paso el codigo

#! /bin/bash
echo Content-type: text/html
echo
echo "<HTML>"
echo "<HEAD>"
echo "<TITLE>RESULTADO DEL CGI DEL OBLIGATORIO</TITLE>"
echo "</HEAD>"
echo "<BODY>"
echo "<FORM>"
echo Este es el resultado del cgi del obligatorio hecho en bash."<BR>"
echo Esta en /www/obligatorio/cgi-bin"<BR>"
echo "<HR>"
conbash=""
parametros=$QUERY_STRING


IFS="&"
for i in $parametros
do
eval $i

done



IFS="
"
for i in `ls -la $directorio`
do

echo $i
if echo $i|grep -q "^-"
then


tamano=$(echo $i |awk '{ print $5 }')

if [ $tamano -lt 700 ]
then
#echo $i


fi
fi
echo "<BR>"





done


echo "</FORM>"
echo "</BODY>"
echo "</HTML>"

muchas gracias
  #15 (permalink)  
Antiguo 03/12/2010, 13:38
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 6 meses
Puntos: 11
Respuesta: problema programcion shell if

Debes completar la etiqueta <form>
__________________
JF^D Perl Programming en Español
  #16 (permalink)  
Antiguo 03/12/2010, 13:50
 
Fecha de Ingreso: junio-2010
Mensajes: 43
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: problema programcion shell if

no puede ser otro el error ???

Etiquetas: shell
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:59.