Pare/interrompa a execução do script se $USER!= "root"

Pare/interrompa a execução do script se $USER!= "root"

Estou trabalhando em um script que precisa ser executado como root, caso contrário, deve parar tudo.

#!/bin/bash
validationRoot() {
    if [ $USER != 'root' ]
        then
            echo "You're not root! You can't use this script."

    fi
}
validationRoot;
echo "You're root!"

Não sei o que adicionar depois echo "You're not root! You can't use this script."para interromper a execução.

Responder1

Eu teria feito assim:

#!/bin/bash
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

Lembre-se de que id=0 é o que é usado dentro do kernel para identificar o superusuário (ou root).


editar: será ainda melhor redirecionar para STDERR.


Aqui está uma frase :)

(( EUID )) && echo ‘You need to be root.’ && exit 1

informação relacionada