如何在dash中检查root

Rob*_*y75 1 linux bash dash-shell

bash的标准解决方案,请参阅:

https://askubuntu.com/questions/15853/how-can-a-script-check-if-its-being-run-as-root

这是:

#!/bin/bash
if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root" 
   exit 1
fi
Run Code Online (Sandbox Code Playgroud)

在dash中不起作用,它正慢慢成为Linux下的标准shell.如何将上述内容移植到破折号?

kon*_*box 7

用途id:

if [ "$(id -u)" -eq 0 ]; then
    echo "I am root!"
fi
Run Code Online (Sandbox Code Playgroud)

要么

#!/bin/sh
if [ "$(id -u)" -ne 0 ]; then
    echo "This script must be run as root" 
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)

在Linux中,您可以只读取id哪个比依赖二进制文件更有效.

if [ "$(id -u)" -eq 0 ]; then
    echo "I am root!"
fi
Run Code Online (Sandbox Code Playgroud)