หากต้องการทราบว่าเกิดอะไรขึ้นให้เรียกใช้
% alias striplines='print -lr awk " /^$/ {print \"\n\"; } /./ {printf( \" %s \",$0);}"'
% striplines
awk
/^$/ {print "\n"; } /./ {printf( " %s ",zsh);}
เนื่องจาก$
อักขระอยู่ในเครื่องหมายอัญประกาศคู่ (เมื่ออักขระถูกขยายหลังจากนามแฝงถูกขยาย) อักขระเหล่านั้นจะถูกตีความโดยเชลล์ เพื่อให้ได้ข้อความที่ถูกต้องมันง่ายกว่าที่จะใส่คำจำกัดความของนามแฝงทั้งหมดในเครื่องหมายคำพูดเดี่ยว สิ่งที่อยู่ในเครื่องหมายคำพูดเดี่ยวคือสิ่งที่จะขยายเมื่อใช้นามแฝง ตอนนี้ว่าอาร์กิวเมนต์ของถูกล้อมรอบในราคาคู่ก็เป็นที่ชัดเจนว่าคุณจะต้องทับขวาก่อนawk
\"$
alias striplines='print -lr awk " /^\$/ {print \"\n\"; } /./ {printf( \" %s \",\$0);}"'
สำนวนที่มีประโยชน์ในการอ้างคำพูดเดี่ยวสตริงที่ยกมาเป็นวิธีที่'\''
ค่อนข้างมากที่จะใส่คำพูดเดียวที่แท้จริงในสตริงที่ยกมาเดี่ยว ในทางเทคนิคมีการวางเคียงกันของสตริงที่ยกมาเดี่ยว, เครื่องหมายแบ็กสแลชที่ยกมา'
และอีกสตริงที่ยกมาเดี่ยว สตริงว่าง juxtaposed ''
ที่ส่วนท้ายสามารถลบออกได้
alias striplines='print -lr awk '\'' /^$/ {print "\n"; } /./ {printf( " %s ",$0);}'\'
หลังจากคำอธิบายยาวนี้คำแนะนำ: เมื่อมันซับซ้อนเกินไปสำหรับนามแฝงใช้ฟังก์ชั่น