Я довольно новичок в bash, и у меня проблемы с тем, что я предполагаю, форматирование. Я пытаюсь редактировать /etc/profile
, поэтому он будет отображать сообщение для входа для root и другое сообщение для входа для кого-либо еще. Но я получаю ошибку bash: синтаксическая ошибка около неожиданного токена else
. Я пробовал все разные комбинации точки с запятой, затем на следующей строке и т. Д., Но всегда получаю ту же ошибку. Я пробовал линии отдельно, и они отображают штраф (кроме $HOSTNAME
, не могут заставить это работать). При запуске, как это, и войдите в систему с корнем, он просто перейдет на «Добро пожаловать $USER
...».bash: ошибка синтаксиса рядом с проблемой форматирования анонимного токена `else '?
Все предложения будут оценены!
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
Это работает для меня с Баш 3,2 – Himanshu
Выглядит хорошо для меня - и делает работу, несмотря на две вещи. FIrst, вы, скорее всего, хотели бы проверить '[" $ UID "-eq 0]' вместо '-ne', иначе он будет повторять корневую тему для пользователей, не являющихся пользователем root, и наоборот. И второе: '$ HOSTNAME' не должно быть заключено в backticks, это не команда. –
@JohannesH .: Если ваше имя хоста не совпадает с какой-либо командой (скажем, если вы назвали свою машину 'cat'). –