ในzsh
การทำงานนี้ได้ดี:
alias foo=ls
foo
แต่นี่ไม่ได้:
alias foo=ls; foo
การกด Enter เป็นช่วงเวลาพิเศษไม่ใช่ปัญหาเมื่อทำงานแบบโต้ตอบ แต่เมื่อทำงานผ่านssh
มันก็กลายเป็นปัญหา:
% ssh zsh@server 'alias foo=ls; foo'
zsh:1: command not found: foo
แม้จะมีการขึ้นบรรทัดใหม่มันก็ไม่ทำงาน:
% ssh zsh@server 'alias foo=ls;
foo'
zsh:2: command not found: foo
สิ่งที่แปลกคือzsh
รู้ว่ามันเป็นนามแฝง:
% ssh zsh@server 'alias foo=ls; alias'
foo=ls
run-help=man
which-command=whence
จะบอกได้อย่างไรzsh
ว่าชื่อแทนควรใช้งานอยู่?
bash
และcsh
และพวกเขาประพฤติในลักษณะเดียวกัน ฉันหวังว่าบางคนสามารถอธิบายได้