循环变量替换后的 Shell glob 扩展

循环变量替换后的 Shell glob 扩展

如何更改以下示例,以便在循环变量替换后进行全局扩展?

for i in a b c
    do echo $i/*.txt
done

更新:这通常确实有效,但是set -f在我正在查看的脚本中已经完成了。

答案1

如果您正在编写bash代码,明智地使用“set -f”来关闭通配符,并使用“set +f”来打开通配符可能会达到您想要的效果:

#!/bin/bash

for i in a b c
do
    set -f
    Z=$i/*.txt
    echo $Z
    set +f
    echo
    echo "Does it expand?"
    echo $Z
done

相关内容