Use aspas duplas. Isso expandirá a variável, mas não os curingas incorporados.
cat /path/"$FILENAME"
Eu tenho script, ele deve passar por arquivos para obter linhas específicas deles. O nome do arquivo é obtido a partir da variável, por exemplo, $ FILENAME e temos essa situação:
cat / path / $ FILENAME
mas quando FILENAME==*.some.file existe um problema. O arquivo *.some.file realmente existe, mas cat lista todos os arquivos por máscara *.some.file ( first.some.file second.some.file *.some.file fourth.some.file e assim por diante)
aspas simples no caminho previnem a inclusão da variável.
Alguma ideia de como cat (ou grep ) apenas um *.some.file ?
cat "/path/to/$FILENAME"
não expandirá * para uma glob.
cat \*.some.file escapará do * , por isso é tratado como um caractere literal.
Além disso, cat '*.some.file' terá um efeito semelhante. Em ambos os casos, evita que o bash expanda o * para uma lista de arquivos correspondentes.
Tags bash