POSIXLY:
$ : "${editor:=$(command -v emacs)}" "${editor:=/usr/bin/vi}"
$ printf '%s\n' "$editor"
emacs
Você não pode fazer expansões de parâmetros aninhados em qualquer shells parecidos com Bourne, mas zsh
:
$ editor=${$(whence -p emacs):-/usr/bin/vi}
$ print -rl -- $editor
/usr/bin/emacs
ou:
editor=${commands[emacs]-$commands[vi]}