buscar opción como argumento de línea de comando

buscar opción como argumento de línea de comando

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, *.txtel 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_patternen la llamada a findpor 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.

información relacionada