Как я могу использовать 'у меня есть root-доступ?' как условие в bash?

Я пишу установку script и хотел бы, чтобы она была установлена ​​в локальном каталоге, если у пользователя нет доступа root.

в частности, я ищу код, который идет между каратами (<>)

if [[<do I have root access? = TRUE>]]; then
    .. install .. 
else
    .. install  in $HOME/mylib .. 
fi

Ответ 1

Для bash вы можете использовать переменную EUID:

if [ "$EUID" == 0 ] ; then
    ..something..
else
    ..something else
fi

Для POSIX-совместимого решения используйте:

if [ "`id -u`" == 0 ] ; then

Хотя помните, что обычный ответ на ваш вопрос - "не делай этого". Вы никогда не знаете, когда кто-то решит запустить ваш код в среде, которую вы не ожидали... Итак, в общем случае вместо "проверить разрешения затем сделать что-то" лучший подход - "попытаться что-то сделать, а затем обнаружить,".