Хорошо, я нашел решение или понял, что я сделал неправильно. Прежде всего, я попытался вызвать установку марионетки на главном узле. Запустив puppet apply./test-it.pp
. Поскольку это не сработало, я попытался вызвать его на ведомом узле, используя вместо этого sudo /opt/puppetlabs/bin/puppet agent -t
.
Чтобы это работало, я переименовал test-it.pp
в site.pp
и переместил в /etc/puppetlabs/code/environments/production/manifests/
.
Это заняло несколько секунд, и теперь я могу использовать Java на ведомом узле, как и ожидалось.
Вы можете спровоцировать именно эту ошибку, вставив какой-нибудь невидимый управляющий символ (, отличный от символа каретки -return )в начале строки, содержащей оператор if
-. Такой символ будет виден как^X
(для некоторого символа верхнего регистра -X
), если вы просматриваете файл с cat -v
в терминале.
Вы, вероятно, сможете определить символ, если отредактируете файл с помощью vim
и легко удалите его, или вы можете попробовать просто скопировать и вставить файл из вашего вопроса выше, чтобы избавиться от символа.
Символ, вероятно, был вставлен случайно, нажав Ctrl+V(для вставки? ), а затем какая-то другая управляющая последовательность. Некоторые редакторы, такие как vim
и vi
, а также оболочка вставляют следующий символ дословно, если сначала нажать Ctrl+V , что позволяет вставлять необработанные управляющие символы.
Я не слишком внимательно изучал вашу строку подсказки, но вам не нужно ее экспортировать, поскольку PS1
строго используется только текущей оболочкой. Точно так же вам не нужно экспортировать PATH
, так как это уже переменная окружения (, если только вам не удалось unset
сделать это в какой-то момент до ).
Значение PS1
также может выиграть от того, что оно заключено в одинарные -кавычки, а не в двойные -кавычки, и у вас есть некоторые проблемы с вашими escape-последовательностями, из-за которых оболочка теряет отслеживание длины подсказки, но я не заметил. Я не пытался понять, что это может быть, но, возможно, это связано с самим смайликом.