Na maioria dos shells, as variáveis não são automaticamente parte do ambiente até que sejam exportadas (na terminologia do shell Bourne). Para sh / bash, use:
ssh $SERVER "su $ORACLE_USER -c 'export ORACLE_HOME=\"/u01/app/oracle/product/11.2.0\";
export PATH=\"/u01/app/oracle/product/11.2.0/Opatch:\$PATH\";
opatch lsiinventory'"
(No bash, alterar uma variável de ambiente existente como $ PATH irá reexportá-lo automaticamente, mas isso não é garantido que seja verdadeiro em todos os shells).
Observe também que ssh
não preserva a separação de argumentos e envia tudo como um único parâmetro (que é eventualmente dado a /bin/sh -c "…"
). Para evitar confusão, talvez seja melhor passar apenas um único parâmetro de comando para ssh em primeiro lugar.