我有一个像这样构建的变量:
ATTSTR=""
for file in $LOCALDIR/*.pdf
do
ATTSTR="${ATTSTR} -a \"${file}\""
done
该变量现在包含(注意文件名中的空格):
ATTSTR=' -a "/tmp/Testpage - PDFCreator.pdf"'
现在我想在这样的命令中使用这个变量:
mutt -s "Subject" "${ATTSTR}" [email protected]
但事实证明它像这样扩展,因此命令失败(注意扩展变量周围添加的单引号):
mutt -s "Subject" ' -a "/tmp/Testpage - PDFCreator.pdf"' [email protected]
我希望我的变量在没有单引号的情况下扩展,使用"$ATTSTR"
or$ATTSTR
更糟。我怎样才能做到这一点?
文件名在扩展字符串中是出了名的不可靠;抵制这种诱惑。
相反,使用数组来保持文件名完整,而不管任何空格:
请参阅Bash 数组指南以供参考。
使用评估功能