是否有一个zsh等同于别名中的功能成语?

是否有一个zsh等同于别名中的功能成语?

问题描述:

很多年,我给zsh一试。我有是否有一个zsh等同于别名中的功能成语?

alias rsync='rsync -av --progress --stats --human-readable' 

,也有很多像这样的别名在我的bash的.profile

alias workin='function _workin(){ rsync -avE --progress --stats --human-readable -e ssh [email protected]$1:/there/ /here; };_workin' 

我一直无法弄清楚如何得到这个在zsh的工作。我不断收到“找不到匹配”的错误。有任何想法吗?提前致谢!

+2

为什么你把一个函数放在一个别名中而不是仅仅使用这个函数? – 123

+0

这就是我最终想到如何做到这一点,例如在bash“rsync 1.1.1.13”中发出命令,它会自动做我想做的事情。如果有更好的方法,*请*让我知道。 – Dribbler

+1

更好的方法是123说:只需使用该功能。 – melpomene

的解决方案,在bashzsh,是完全免除别名。

workin() { 
    rsync -avE --progress --stats --human-readable -e ssh [email protected]"$1":/there/ /here 
} 

(无论你是否需要引用$1取决于你使用的设置; zsh有些配置的,但是,它不会伤害引用它,所以我会做所以在这里)。

我不确定为什么我在bash的别名中使用函数:很久以前,习惯改变很难。 123和墨尔波墨涅给我的意见的方式,因此如果有人想在zsh中做同样的,这里有一个更好的方式有很大StackExchange解释:https://unix.stackexchange.com/questions/33255/how-to-define-and-load-your-own-shell-function-in-zsh