我有存储在一个变量下面的值 - 模式展开存储在变量文件路径模式在bash
$WS/*.asd
在我的环境$ WS计算结果为有效目录(/ home /管理员的/ dev /工作区/)。这个目录中有一些.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-VAR和通配符的任意组合。例如,输入可能是:。问题是我想评估所有env-vars并扩展通配符。
对不起,我没有足够的解释的。这个解决方案假设我知道如何提取目录。我可能会得到任何env-vars和通配符的序列。例如'/home/$USER/*/$DIR/*.my_extension“。 – egelev
嗯,在这种情况下'eval echo”$ pattern“' – anubhava
谢谢。真的,这个工作正如我需要它的工作。请,编辑你的答案,把它放在里面,我会标记它。 – egelev