で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は問題ではありません:sshサーバー 'shopt -s expand_aliases; alias jj = ls \ njj'
—
Ole
bash、cshそして彼らは同じように振舞いました。誰かがそれを説明してくれることを願っています。