Pergunta

Eu tenho um arquivo chamado "physics 1b.sh". Em Bash, se eu tentar

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

Grep reclama:

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

No entanto, quando eu faço

grep "string" physics\ 1b.sh 

Funciona bem. Então, acho que o problema tem algo a ver com a variável que não está sendo expandida para incluir a barragem de que o Grep precisa reconhecer o espaço. Como faço para que isso funcione?

Usando Bash 3.2, Mac OS 10.6.

Editar:
Não importa, o problema era que X estava definido " physics 1b", mas quando eu fiz echo $x Para verificar o conteúdo, Bash cortou os espaços na frente para que eu não pudesse dizer que era diferente. O primeiro caminho acima realmente funciona.

Foi útil?

Solução

Coloque o argumento inteiro em citações duplas:

grep "string" "$x.sh"

Outras dicas

Use isso em seu script.

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

Outra maneira

grep "string" "${x}.sh"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top