で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
そして彼らは同じように振舞いました。誰かがそれを説明してくれることを願っています。