Pregunta

Tengo un problema con éste. Está constantemente me regresaba, no es un directorio, pero es sin duda es

#!/usr/local/bin/bash  
DIR=$1  
if [ -d "$DIR" ]; then  
        ls -1Apl /home/$DIR | grep -v /\$  
else  
        echo "not a directory"
fi

Una cosa más, necesito una pequeña pista. Tengo a archivos de lista de un determinado usuario en un directorio dado, donde consigo tanto para el usuario y el directorio como parámetros. sugerencias sólo, por favor.

¿Fue útil?

Solución

¿Está usted en el directorio /home cuando se ejecuta este? Si no es así, es posible que desee cambiar a:

if [ -d "/home/$DIR" ]; then

para que coincida con el comando ls. Esto es suponiendo que se está ejecutando con algo como myscript pax para examinar el directorio /home/pax, que parece ser el caso.

Y si quieres sólo para listar los archivos que hay en propiedad de un usuario específico, puede utilizar awk imprimir sólo los que tienen la columna 3 establece en el valor deseado ($usrnm), algo como:

ls -1Apl /home/$DIR | grep -v /\$ | awk -v user=${usrnm} '$3==user{print}{}'

Otros consejos

Usted no está probando la existencia del mismo directorio que usted está tratando de lista - tal vez usted -d "/home/$DIR" media? O desde su requerimiento, ¿tiene dos parámetros?

user="$1"
dir="$2"

# and then examine "/home/$user/$dir"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top