Use
(defun weird-compile () (interactive)
(let ((shell-file-name "/bin/my-weird-sh"))
(call-interactively #'compile)))
Isso definirá shell-file-name
localmente quando você chamar weird-compile
, que você pode vincular à chave de sua escolha.