Eu realmente não tenho certeza porque você está recebendo este erro. Eu tenho um sistema com o sudo 1.8.3, e a documentação diz claramente que algo como sudo -s "echo hi"
deveria funcionar, mas não funciona.
A maneira como sempre fiz isso é fazer a mesma coisa -s [command]
, mas manualmente.
sudo sh -c 'echo hi'
ou no seu caso
sudo -u db2inst1 sh -c "/opt/ibm/db2/current/bin/db2 connect to PLC; /opt/ibm/db2/current/bin/db2 \"update EDU.contact set MOBILE_PHONE = '123'\""
É mais compatível, já que o argumento -s
nem sempre existe (e infelizmente tenho algumas máquinas realmente antigas funcionando).
Editar:
O que está acontecendo no erro que você está recebendo é que ele está procurando por um executável que é literalmente chamado db2 "update EDU.contact set MOBILE_PHONE = '123'"
em um diretório chamado /opt/ibm/db2/current/bin/db2 connect to PLC; /opt/ibm/db2/current/bin
(sim, ele procura db2 connect to PLC;
como um diretório). Isso obviamente não existe.