Oh My Zsh multiple commands with one alias
Asked Answered
D

2

40

I'm using Oh My Zsh, and was wondering if there is a way to create a function or alias to run multiple commands. Just as an example, running an 'update' command will update specific gems, but not all of them.

Dyeing answered 8/10, 2013 at 18:4 Comment(1)
Figured it out alias name="something; something else"Dyeing
S
81

As you've discovered, you can chain commands in a single alias using ;:

alias update_my_gems="echo foo; echo bar"

Alternatively, you can write a function very easily in your ~/.zshrc file:

update_my_gems() {
    echo foo
    echo bar
}

For readability, I'd personally go for a function for anything that's semi-complex.

Sappy answered 9/10, 2013 at 6:33 Comment(3)
I'd default to using a function for anything, unless there is a reason why an alias is better (which will rarely be the case).Deafening
I ended up making a function exactly like that. Thank you!Dyeing
@snakesonatoni, do you know of an effective way to replace an OMZ alias with one that accepts parameters? I haven't had much luck: #61110165Interstate
S
2

If there are many commands, I find it useful to alias the execution of a .sh file located on my home directory

alias start_containers="./start-containers.sh"

To throw the alias inside the config file, you can do

echo alias start_containers="./start-containers.sh" >> ~/.zshrc
Stream answered 20/11, 2019 at 15:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.