我想定义一个包含星号(*)的变量,像这样
var=*.fits
asterisk.fits不是我文件的名称,而是某些带有fits扩展名的文件的名称。
实际上,我想定义此变量以在下一阶段使用它:
ls "$var"
这样我可以看到所有扩展名为.fits的文件。
我该怎么做?似乎仅写var=*.fits
无效。
预先感谢
答案 0 :(得分:1)
如果您希望将通配符 赋值存储在变量中而无需 globbing 分词,则必须引用它
var='*.fits *.txt'
var=*.fits
ls $var
在分配var=
期间不执行通配符(但会进行单词拆分)
如您所见,您必须不要引用$var
输出来对其进行评估
外壳扩展到在滑动时发现的任何东西
ls "$var"
ls: cannot access '*.fits': No such file or directory
ls $var
file1.fits file2.fits file3.fits