A execução de ssh foo@remote-server
seguido por ./script.sh
equivale à execução de ssh foo@remote-server ./script.sh
e a execução de ssh foo@remote-server
seguido por sudo -u bar ./script.sh
é equivalente a ssh foo@remote-server sudo -u bar ./script.sh
(exceto sudo
pode falhar porque precisa de um TTY, que pode ser trabalhado facilmente). Por isso, receio que o que você está perguntando não faça sentido. Tudo o que você fizer para contornar essa diferença artificial, como testar a presença de $TERM
ou [ -t 0 ]
, provavelmente é facilmente contornado.