Usamos runuser
em alguns de nossos scripts de implantação. Ao examinar os scripts, estou imaginando como o tratamento de erros funcionaria se algum dos comandos dentro dos erros runuser
precisasse. Ao tentar resolver isso sozinho, eu não encontrei nenhum outro definitivo além de usar &&
como tal:
#!/bin/bash -e
echo "- next"
# this is what we're currently doing, which appears to not handle errors
runuser -l $USER -c "echo cmd2; ls non-existant-file; echo done";
echo " exit code $?"
echo "- next2"
# best solution I've come up with so far
runuser -l $USER -c "echo cmd2 && ls non-existant-file && echo done";
echo " exit code $?"
echo "- finish"
Alguma sugestão de como abordar melhor este problema? Dado que alguns dos comandos individuais dentro do script runuser
podem ficar bastante envolvidos (ou seja, condicionais e afins), espero encontrar uma maneira mais elegante / óbvia para lidar com quaisquer erros.
Outro pensamento é fazer algo assim:
runuser -l $USER -c "echo cmd2 && ls non-existant-file && echo done" || exit 1
Tags shell-script