
Tengo un problema con mi guión. Estoy intentando escribir un script, donde la opción de búsqueda de comando es el primer argumento de la línea de comando.
En mi guión tengo algo como
find_option=$1
find $find_option
El problema es que, por ejemplo, para la opción de búsqueda, *.txt
el resultado es solo el primer archivo de texto de mi directorio, pero me gustaría encontrar todos esos archivos.
Gracias
Respuesta1
Suponiendo que le das a tu script el patrón así,
./myscript '*.txt'
(las comillas son necesarias para evitar expandir el patrón a nombres en el directorio actual), entonces puedes escribir tu script así:
#!/bin/sh
name_pattern=$1
find . -name "$name_pattern"
Esto toma el primer argumento de la línea de comando y lo usa en una llamada a find
, filtrando los nombres encontrados en el directorio actual y debajo según el patrón dado.
Tenga en cuenta que aquí también necesita citar la expansión variable de $name_pattern
en la llamada a find
por la misma razón que necesitaba citarla en la línea de comando al llamar a su script, es decir, para evitar expandir el patrón a nombres en el directorio actual.