我将以下值存储在变量-模式中
$WS/*.asd
在我的环境中,$ WS评估为有效目录(/ home / administrator / dev / workspaces /)。此目录中有一些.asd文件。我想将pattern
变量扩展到此目录中所有匹配的.asd文件。但是,我尝试了以下命令,但是它们都不起作用:
expand "$pattern"
expand: $WS/*.asd: No such file or directory
ls $pattern
ls: cannot access $WS/*.asd: No such file or directory
eval $pattern
/home/administrator/dev/workspaces/a.asd: Permission denied
echo $pattern
$WS/*.asd
我将模式作为输入。我知道如何将模式扩展到包含所有匹配文件的列表。
编辑:更详细地说明问题
我可能会以任何顺序获得env-vars和通配符的任何组合。例如,输入可以是:/home/$USER/*/$DIR/*.my_extension
。问题是我想评估所有env-vars并扩展通配符。
除此之外,eval
您可以尝试以下方法find
:
pattern='$WS/*.asd'
find "$WS" -name "${pattern##*/}"
编辑:根据您编辑的问题,看来您将不得不使用:
eval echo "$pattern"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句