bash,zsh: improved f()