Чтобы проверить, является ли это корень, который запускает программу, необходимо звонить getuid()
.
LINENO
ksh функция, также существующая в ударе и zsh. Нет такой функции в Оболочке Bourne в спецификации POSIX или в тире. При необходимости в номере строки удостоверьтесь, что сценарий выполняется под оболочкой, которая имеет функцию. Большинство систем имеет или удар или ksh доступный.
if [ -z "$LINENO" ]; then
if type ksh >/dev/null 2>/dev/null; then
exec ksh "$0" "$@"
elif type bash >/dev/null 2>/dev/null; then
exec ksh "$0" "$@"
else
echo 1>&2 "$0: Fatal error: unable to find a shell that supports LINENO."
exit 100
fi
fi
Вы могли выполнить последующую обработку свой сценарий
awk '{gsub(/[$]LINENO/,FNR);print}' script_template > script
Но это обычно вызывает проблемы с необходимостью поддержать шаблон и генерировать сценарий каждый раз, когда Вы хотите сделать редактирования.