Isso funciona bem:
$ alias foo="pushd /; ls -ld ./tmp; popd"
$ foo
/ ~
drwxrwxrwt 12 root root 4096 Dec 25 19:30 ./tmp/
~
Mas se você precisar passar parâmetros para o comando do meio do alias, será necessário usar uma função. Caso contrário, os parâmetros são apenas adicionados ao final do alias, então eles vão como parâmetros para popd
.
Faça isso:
something() {
pushd /path > /dev/null
./somescript.sh "$@"
popd > /dev/null
}
something -o blahblah
Usando command
como o nome do alias / função pode não ser a melhor chamada, é um shell embutido que é usado para chamar comandos externos, pulando funções com o mesmo nome.