我是 shell 腳本的新手,最近遇到了一些我不理解的東西。
這兩個腳本有什么區別:
腳本 1:
COLORS="RED YELLOW GREEN"
for i in $COLORS
do
echo $i
done
腳本 2:
for i in "RED YELLOW GREEN"
do
echo $i
done
從我的角度來看,它們應該具有相同的輸出,但它們沒有。輸出:
腳本 1:
RED
YELLOW
GREEN
腳本 2:
RED YELLOW GREEN
非常感謝??
uj5u.com熱心網友回復:
不同之處在于參考和變數擴展規則。
變數擴展后,第一個示例中的引號消失了,這相當于一個回圈超過 3 個元素:
for i in RED YELLOW GREEN
do
echo $i
done
而第二個示例是對一個元素的回圈,該元素恰好是包含空格的字串:
for i in "RED YELLOW GREEN"
do
echo $i
done
如果您想在使用變數時獲得第二種行為,您需要在變數擴展周圍添加一個參考級別,即:
COLORS="RED YELLOW GREEN"
for i in "$COLORS"
do
echo $i
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527509.html
