是否有一个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的工作。我不断收到“找不到匹配”的错误。有任何想法吗?提前致谢!
答
的解决方案,在bash
和zsh
,是完全免除别名。
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
为什么你把一个函数放在一个别名中而不是仅仅使用这个函数? – 123
这就是我最终想到如何做到这一点,例如在bash“rsync 1.1.1.13”中发出命令,它会自动做我想做的事情。如果有更好的方法,*请*让我知道。 – Dribbler
更好的方法是123说:只需使用该功能。 – melpomene