Aliases are only expanded as the first argument, or after another alias with a trailing space on the end of the command.
A trailing space in VALUE causes the next word to be checked for alias substitution when the alias is expanded.
To do this, try the following:
alias watch='watch '
alias ll='ls -l --color=tty'
Bear in mind that some versions of
watch strip colours by default, on some versions this can be stopped by using
For some other situations where this is inconvienient, you might want to use an array instead, for example:
ll=(ls -l --color=tty)
# Each of the program arguments are passed separately to watch
# All of the program arguments are passed as one argument to watch