【发布时间】:2022-01-11 14:01:25
【问题描述】:
我正在尝试通过 env var 将一些 --exclude 语句传递给我的 tar 命令(实际上我会传递几个 --exclude 语句,并试图通过将定义放在单独的行上来提高可读性) :
# EXCLUDE_STUFF="--exclude='/captain/generated'"
# tar ${EXCLUDE_STUFF} -cvzf /dev/null /captain
/captain/
/captain/generated/
/captain/generated/registry-auth
... etc ...
即它不排除我指定的文件夹。如果我用引号将${EXCLUDE_STUFF} 括起来并没有什么不同。
这是我回显上述命令时得到的结果:
# echo tar ${EXCLUDE_STUFF} -cvzf /dev/null /captain
tar --exclude='/captain/generated' -cvzf /dev/null /captain
所以看起来命令是正确的。当我直接运行扩展命令时,我得到:
# tar --exclude='/captain/generated' -cvzf /dev/null /captain
/captain/
/captain/temp/
/captain/data/
... etc ...
即指定的文件夹已被排除。
那么为什么变量替换在这种情况下不起作用?
【问题讨论】:
标签: linux unix environment-variables tar