Pregunta

Tengo un archivo llamado "physics 1b.sh". En Bash, si lo intento

x="physics 1b"
grep "string" "$x".sh

Grep se queja:

grep:  physics 1b: No such file or directory.

Sin embargo, cuando lo hago

grep "string" physics\ 1b.sh 

Funciona bien. Así que supongo que el problema es algo que ver con la variable que no se está expandiendo para incluir la barra inalcadora que Grep necesita para reconocer el espacio. ¿Cómo hago que esto funcione?

Usando Bash 3.2, Mac OS 10.6.

Editar:
No importa, el problema era que X estaba configurado para " physics 1b", pero cuando lo hice echo $x Para verificar el contenido, Bash cortó los espacios en el frente para que no pudiera decir que era diferente. La primera forma de arriba en realidad funciona.

¿Fue útil?

Solución

Ponga todo el argumento en cotas dobles:

grep "string" "$x.sh"

Otros consejos

Usa esto en tu script.

grep "string" "${x}.sh"

de otra manera

grep "string" "${x}.sh"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top