我有脚本,它必须通过文件从他们得到特定的线路。 文件名从variables获得,例如$ FILENAME,我们有这样的情况:
cat / path / $ FILENAME
但是当FILENAME==*.some.file出现问题时。 文件*.some.file真的存在,但猫列出的所有文件的path*.some.file ( first.some.file second.some.file *.some.file fourth.some.file等)单引号防止包含variables。
任何想法如何cat (或grep )只有一个*.some.file ?
使用双引号。 这将扩大variables,但不是任何embedded式通配符。
cat /path/"$FILENAME"
cat "/path/to/$FILENAME"
不会将*扩展为glob。
cat \*.some.file将转义*所以它被当作文字字符处理。
另外cat '*.some.file'也会有类似的效果。 在这两种情况下,它都会阻止bash将*扩展为匹配文件的列表。