Tecnicamente, A && B
só executará B quando A for bem-sucedido (sai com status de EXIT_SUCCESS, ou seja, 0). Da mesma forma, A || B
só executará B quando A falhar. Outra opção pode ser A; B
, que deve executar B, independentemente do status de saída de A, mas não até que A seja concluído. Eu não sei como os jogos estão saindo, mas se ele não estiver saindo com um status EXIT_SUCCESS, então B não será executado.
Para testar isso, você pode executar os seguintes comandos e ver quais geram a string:
perl -e 'exit 0' && echo "exit was successful"
perl -e 'exit 0' || echo "exit was successful"
perl -e 'exit 0'; echo "exit was successful"
perl -e 'exit 1' && echo "exit was failure"
perl -e 'exit 1' || echo "exit was failure"
perl -e 'exit 1'; echo "exit was failure"
Finalmente, você pode criar um script de shell /usr/games/supertux2.sh:
#!/bin/sh
/usr/games/supertux2
echo "PASSWORD" | sudo -S shutdown -h now
E, em seguida, chame isso na reinicialização, em vez de / usr / games / supertux2