Tem pontos para melhorar no script.
O sudo podia ser invocado com o parâmetro -S senha.
No inicio do script vc pede a senha do sudo para o usuário e a partir da senha obtida vc passa a usar o sudo com o parâmetro -S [senha] onde senha é a variável da senha passada pelo usuário.
Outra melhoria seria no lugar de verificar “if [[ “$s” == ‘s’ ]]” verificar da seguinte forma if [[ ${s,,} == 's' ]] desta forma o bash converte o S maiúsculo para minúsculo antes de rodar o test, desta forma o s independente de ser maiúsculo ou minúsculo sempre será processado como “s” porque foi mitigado o case sensitivo do bash.
O arquivo .desktop deve abrir no terminal certo? deixa eu ver…
E rapaz, o script é full yad, eu não entende qual é a lógica de vc colocar echo nesse caso…
Já que o script é feito full interação pelo yad, vc deve abrir uma janela de password através do yad para o usuário inserir a senha, e guardar isso em uma variável, então variavel é “SENHA”, vc vai escrever o sudo assim:
sudo -S $SENHA comando
Já o s/n vc vai mitigar o case sensitivo do bash em todas as perguntas.
Isso é para evitar de que o usuário esteja com o CAPS LOCK pressionado sem ele ter consciência disso, e dai ficar recebendo erro ao apertar “s” e achar que o problema é no script, ele vai perder a vida dele tentando descobrir o que está acontecendo e ficar com raiva.
Pede o chatGPT para te explicar como usar o 2x vírgula para mitigar o case sensitivo no test.
O zenity tem uma opção especifica para inserção de senha, o yad certamente tmb tem.
Vc está verificando se é root e usando sudo, isso não faz sentido.
Se for para usar o sudo na chamada do programa, então não precisa de sudo dentro do programa, se for para usar sudo no programa, significa que ele não está executando como root, dai precisa passar o sudo com parâmetro -S e colocar um if na verificação se é root para que caso não seja abra o yad com a entrada do password do sudo.
Mas da forma feita até agora não faz sentido algum.
A verificação de Root ocorreu por último. Se o usuário já estiver utilizando Root, o comando sudo não terá efeito. Caso haja um problema na verificação de Root, o sudo pode ser utilizado como alternativa.