Я хотел бы написать скрипт, который выполняет задачу администрирования, и я хотел бы иметь возможность запускать его либо из терминала, либо нет. Если он запускается в терминале, даже графическом, я бы хотел попросить пароль с помощью sudo. Если он запускается другим способом (например, диалог Alt+F2), он должен использовать gksudo. Какие-либо решения?
Ответ
Исходя из нижеприведенного, вот что я придумал:
#!/bin/sh
SUDO="/usr/bin/sudo"
if [ -t 1 ]; then
"$SUDO" "$@";
else
gksudo -- "$SUDO" "$@";
fi
Немного неуклюжий случай для gksudo - убедиться, что параметры анализируются с помощью sudo, а не gksudo, потому что они имеют различные параметры командной строки.