¿que ocurre si pongo un patrón que no coincide con ningún fichero? ¿Como lo expande bash, como una cadena vacía?
Buena pregunta Redy
. En realidad la respuesta correcta a esa pregunta sería
'depende'.
En oprincipio si el patrón no coincide con ningun fichero no se expande, se queda tal cual. Por ejemplo
$ echo /usr/bin/*.txt
/usr/bin/*.txt
Pero se puede cambiar ese comportamiento con una opción de bash. Es la opción 'nullglob', y si está activa cuando no haya ninguna coincidencia el patrón se remplaza por una cadena vacía, es decir se borra, en cambio si está inactiva se conserva tal como se escribió. Para activar esa opción usaremos el comando 'shopt -s nullglob' y para desactivarla 'shopt -u nullglob'. Los cambios durarán hasta que finalice la sesión de bash o se cambien de nuevo:
$ shopt -s nullglob
$ echo /usr/bin/*.txt
$ shopt -s nullglob
$ echo /usr/bin/*.txt
/usr/bin/*.txt
Porque ya sabéis que el que no pregunta nada, o lo sabe todo, o no sabe nada. ...