Để có ý tưởng về những gì đang xảy ra, hãy chạy
% alias striplines='print -lr awk " /^$/ {print \"\n\"; } /./ {printf( \" %s \",$0);}"'
% striplines
awk
/^$/ {print "\n"; } /./ {printf( " %s ",zsh);}
Vì các $
ký tự nằm trong dấu ngoặc kép (khi chúng được mở rộng sau khi bí danh được mở rộng), chúng được giải thích bởi shell. Để có được trích dẫn đúng, dễ dàng hơn để đặt toàn bộ định nghĩa bí danh trong các trích dẫn đơn. Những gì bên trong dấu ngoặc đơn là những gì sẽ được mở rộng khi bí danh được sử dụng. Bây giờ, đối số awk
được bao quanh trong dấu ngoặc kép, rõ ràng rằng bạn cần dấu gạch chéo ngược trước đó \"$
.
alias striplines='print -lr awk " /^\$/ {print \"\n\"; } /./ {printf( \" %s \",\$0);}"'
Một thành ngữ hữu ích để trích dẫn một chuỗi trích dẫn đơn '\''
là khá nhiều cách để đặt một trích dẫn đơn theo nghĩa đen trong một chuỗi trích dẫn đơn. Về mặt kỹ thuật, có một vị trí kề nhau của một chuỗi trích dẫn đơn, một dấu gạch chéo ngược '
và một chuỗi trích dẫn đơn khác. Chuỗi rỗng liền kề ''
ở cuối có thể được gỡ bỏ.
alias striplines='print -lr awk '\'' /^$/ {print "\n"; } /./ {printf( " %s ",$0);}'\'
Sau lời giải thích dài này, một khuyến nghị: khi quá phức tạp đối với bí danh, hãy sử dụng hàm .