8

Let's say I have the following alias definition in my ZSH config file:

alias myalias="cd /"

how can I use myalias inside another alias? ie:

alias myaliasone="myalias && cd /usr"

I have tried (with a real alias this one is a fake just for example purposes) but nothing happens and I am not able to see any errors as per debug or fix something, any ideas? If this is the right way to use alias inside another alias, do you know how I can debug this so I can find the root problem or what is happening?

ReynierPM
  • 395

1 Answers1

10

There are two ways to do it:

Use a function instead of an alias

myalias() {
  cd /
}
alias myaliasone='myalias && cd /usr'

Use the $aliases table

zmodload -F zsh/parameter p:aliases
alias myalias='cd /'
alias myaliasone='$aliases[myalias] && cd /usr'

Note that the string needs to be in 'single quotes', to prevent $parameters inside it from being substituted immediately. Now they will be substituted when the command line is being evaluated, after aliases are substituted.