Aquí está mi código:Comparando parámetro de línea de comando para una cadena
#!/bin/bash
if [ "$#" -ne 2 ] ; then
echo "$0: exactly 2 arguments expected"
exit 3
fi
if [$1 != "file" -a $1 != 'dir'] ; then
echo "$0: first argument must be string "file" or "dir""
exit 1
elif [-e $2 -a -r $2]; then
if ["$1" = "file" -a -f $2] ; then
echo YES
elif ["$1" = "dir" -a -d $2] ; then
echo YES
else
echo NO
fi
exit 0
else
echo "$0: $2 is not a readable entry"
exit 2
fi
Si me quedo ./lab4 file filename1
se comprobará si el primer parámetro es la cadena "fichero" o "dir", entonces si el primer parámetro se "file" y filename1 es un archivo, imprimirá sí. Lo mismo para dir.
No reconoce $1
y $2
. El código dará salida:
./lab04Q2: line 7: [file: command not found
./lab04Q2: line 10: [-e: command not found
aunque puse 2 parámetros cuando ejecuté el programa.
Hola Janson, he editado tu pregunta por ti. En el futuro, considere usar una sangría de 4 espacios sobre cualquier cosa que deba tratarse como 'código' en sus publicaciones aquí. –
gracias pensé que la sangría significaba usar la pestaña, pero eso no funcionó – JA3N