我正在运行一个例子并试图弄清楚如何解析参数。
colour1="red"
colour2="light blue"
colour3="dark green"
for X in "$colour1" $colour2" $colour3"
do
echo $X
done
请注意,奇怪的缺失引号不是拼写错误。这只是博客中的一个测试示例。
我得到的输出是
红色
光
蓝绿色
我预期的输出是
红色
光
蓝色
深绿色
因为colour2不受引号保护,但colour1和colour3应该是。口译员在做什么?
答案 0 :(得分:4)
由于$colour2
和"$ colour3"
紧邻,因此在参数展开之前它们会形成一个单词。以下是扩展的进展情况:
$colour2" $colour3"
light blue" dark green"
light
和blue" dark green"
。light
和blue dark green
。