Как я могу использовать «У меня есть root-доступ?»как условно в bash? - PullRequest
0 голосов
/ 31 августа 2011

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

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

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

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

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

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

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

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

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

0 голосов
/ 31 августа 2011
...