Я новичок в bash, и у меня проблемы с форматированием. Я пытаюсь отредактировать /etc/profile
, чтобы он отображал сообщение о входе в систему для пользователя root и другое сообщение для входа в систему для всех остальных. Но я получаю сообщение об ошибке bash: синтаксическая ошибка рядом с неожиданным токеном else
. Я пробовал все разные комбинации без точки с запятой, затем на следующей строке и т. Д., Но всегда получаю одну и ту же ошибку. Я пробовал строки по отдельности, и они отображаются нормально (кроме $HOSTNAME
, не могу заставить это работать). При таком запуске и входе в систему с правами root он просто перейдет к «Добро пожаловать $USER
...».
Любые предложения будут оценены!
if [ "$UID" -ne 0 ]; then
echo -e "\033[40;37;7m Danger! Root is doing stuff in `pwd`\033[0m"
else
echo "Welcome $USER! You are working on `$HOSTNAME` in `pwd`."
fi
[ "$UID" -eq 0 ]
вместо-ne
- в противном случае это повторяет корневую вещь для пользователей без полномочий root и наоборот. И второе:$HOSTNAME
нельзя заключать в обратные кавычки, это не команда. - person Johannes H.   schedule 07.11.2013cat
). - person Keith Thompson   schedule 07.11.2013$HOSTNAME
— это расширение переменной (например,$USER
, которое не находится в обратных кавычках, но работает ^^), аpwd
— это команда ac, которая выполняется в подоболочке (что делается путем окружения ее обратными кавычками). - person Johannes H.   schedule 07.11.2013/etc/profile
предназначен для работы в любой POSIX-совместимой оболочке, а параметр-e
дляecho
является расширениемbash
. - person chepner   schedule 07.11.2013