เมื่อคุณปล่อยส่วนขยายตัวแปรไว้โดยไม่มีการอ้างอิงเช่น$VotePedro
จะทำขั้นตอนต่อไปนี้:
- ค้นหาค่าของตัวแปร
- แยกค่าที่ช่องว่างแต่ละบล็อกลงในรายการสตริง โดยทั่วไปตัวคั่นเป็นอักขระในค่าของ
IFS
ตัวแปร โดยค่าเริ่มต้นคือพื้นที่แท็บและขึ้นบรรทัดใหม่
- ตีความแต่ละองค์ประกอบของรายการเป็นรูปแบบสัญลักษณ์แทน สำหรับแต่ละองค์ประกอบถ้ารูปแบบตรงกับบางไฟล์ให้แทนที่องค์ประกอบนั้นด้วยรายการชื่อไฟล์ที่ตรงกัน
ดังนั้นคุณสามารถแยกสตริงออกเป็นองค์ประกอบที่คั่นด้วยช่องว่าง (สมมติว่าเป็นค่าเริ่มต้นIFS
) โดยปิดการขยายสัญลักษณ์แทนและขยายตัวแปรที่มีค่าเป็นสตริงนั้นนอกเครื่องหมายคำพูด
VotePedro="Vote for Pedro"
set -f
votePedroArray=($VotePedro)
set +f
for i in "${votePedroArray[@]}"; do …
คุณสามารถแยกส่วน ณ จุดใช้งานได้โดยตรง สิ่งนี้จะใช้ได้แม้ในเชลล์เช่น sh ที่ไม่มีอาร์เรย์:
VotePedro="Vote for Pedro"
set -f
for i in ${votePedro}; do
set +f
…
done
set +f