是否有一个等同于别名中的函数的zsh?

时间:2017-06-13 22:42:13

标签: zsh zshrc

许多年后,我试试zsh。我有

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

以及我的bash .profile

中的很多这样的别名
alias workin='function _workin(){ rsync -avE --progress --stats --human-readable -e ssh me@$1:/there/ /here; };_workin'

我一直无法弄清楚如何在zsh中使用它。我不断收到“找不到匹配”的错误。有任何想法吗?提前谢谢!

2 个答案:

答案 0 :(得分:2)

bash zsh中的解决方案是完全免除别名。

workin () {
  rsync -avE --progress --stats --human-readable -e ssh me@"$1":/there/ /here
}

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

答案 1 :(得分:0)

我不确定为什么我在bash中使用别名中的函数:很久以前,习惯变化很大。 123和melpomene在评论中向我展示了方式,所以如果有人想在zsh中做同样的事情,这里有一个很好的StackExchange解释更好的方法:https://unix.stackexchange.com/questions/33255/how-to-define-and-load-your-own-shell-function-in-zsh