如何推迟 Bash 脚本中的
name
变量,以便它在循环中的引号内正确扩展,例如:
name='*'
curate() {
local e=
for e in $(export HOME='/home/me'; echo /home/me/Downloads/\${name}.$1)
do
[ -e "$e" ] && echo "$e"
done
}
curate() c
name=foo
curate() c
因为它不起作用。
请帮忙明确一下
您可以将您的策划功能替换为:
curate() {
local IFS= e=
for e in /home/me/Downloads/$name.$1
do
[ -e "$e" ] && echo "$e"
done
}
通过将
IFS
本地化为空字符串,全局扩展仍然会发生,但结果的分词被禁用。