ответ Джорданма неверен. /etc/profileпоставляется не всеми оболочками. Как вы указываете, это не источником csh, tcsh- я не уверен в этом zsh. Он поставляется производными Bourne shell ( sh), такими как Korn Shell ( ksh) и BASH ( bash). cshиспользует /etc/login. Люди, которые склонны использовать исключительно производные Borne Shell, склонны забывать о существовании других оболочек. Они добавляют что-то, /etc/profileожидая, что это применимо ко «всем пользователям», и затем удивляются, когда у нечетного пользователя C Shell (а у нас странный лот) нет того материала, в котором он настроен /etc/profile.
Тем не менее, люди склонны забывать о существовании других производных оболочек Borne Shell. Если они используют bashили ksh, они могут свободно добавлять синтаксис, /etc/profileкоторый недопустим в Bourne Shell, как, например, определение переменной и ее экспорт в той же строке. Затем вы получаете некоторый скрипт, который делает, #!/bin/shи он задыхается от синтаксиса. /etc/profileследует придерживаться синтаксиса, совместимого с Bourne Shell.
Точно так же вы должны придерживаться его по своему усмотрению .profile(используйте, .bash_profileесли вам нужен некоторый синтаксис bash) - это может быть немного дополнительная печать, но это дополнительная печать, которую вы делаете все один раз. Ссылка, ${HOME}а не ~и т. Д. Некоторые версии Unix, cron-задания выполняются sh, каждая ваша строка Makefileобрабатывается sh, поэтому, если вы работаете с несколькими версиями UNIX, то стоит поддерживать .profileсовместимость оболочки Bourne. Как системный администратор, я не могу сказать вам, сколько раз я помогал кому-то, настраивая его .profileна совместимость с Bourne Shell.
В Linux /bin/shэто ссылка на /bin/bashнее, и когда вы ее запускаете, она выглядит как путь, который использовался для ее запуска, и (теоретически) ограничивается только тем, что поддерживает Bourne Shell. Аналогично, viв Linux действительно vim, опять же, ограничивает себя. Изредка вы видите особенности «прокачки». Время от времени vimпритворяется, что viделает что-то, vimчто viне поддерживает, потому что авторы vimзабыли отключить это в режиме «обратной совместимости vi». Я не удивлюсь, если у bashпритворства будут shкакие-то схожие черты. Не удивлюсь, если какая-то функция «работает в Borne Shell в Linux», но не в UNIX на базе System V или BSD (AIX, OpenBSD и т. Д.).
Does it have positive ... and understood.Что ты здесь пытаешься сказать? Я понял все, кроме этого пункта.