A resposta de jordanm está incorreta. /etc/profile
não é obtido por todas as conchas. Como você ressalta, não é obtido por csh
: tcsh
- não tenho certeza zsh
. É originário de sh
derivados Bourne shell ( ), como Korn Shell ( ksh
) e BASH ( bash
). csh
usos /etc/login
. Pessoas que tendem a usar exclusivamente derivados da Borne Shell tendem a esquecer que existem outras conchas. Eles acrescentam algo à /etc/profile
expectativa de que se aplique a "todos os usuários" e ficam surpresos quando o usuário estranho do C Shell (e nós somos um lote ímpar) não tem as coisas em que eles configuraram /etc/profile
.
Mesmo assim, as pessoas tendem a esquecer outras conchas derivadas da Borne Shell. Se eles usam bash
ou ksh
, sentem-se à vontade para adicionar uma sintaxe /etc/profile
inválida no Bourne Shell, como, por exemplo, definir uma variável e exportá-la na mesma linha. Então você obtém um script que funciona #!/bin/sh
e ele engasga com a sintaxe. /etc/profile
deve seguir a sintaxe compatível com Bourne Shell.
Da mesma forma, você deve cumpri-lo por conta própria .profile
(use .bash_profile
se quiser alguma sintaxe do bash) - pode ser uma digitação extra, mas é uma digitação extra que você faz todas as vezes. Referência ${HOME}
e não ~
, etc. Alguns sabores de Unix, tarefas agendadas executar sob sh
, cada linha do seu Makefile
é processado por sh
, por isso, se você está trabalhando em vários sabores de UNIX, que realmente paga para manter seu .profile
shell Bourne compatível. Como SysAdmin, não posso lhe dizer quantas vezes ajudei alguém a consertar .profile
que ele fosse compatível com o Bourne Shell.
No Linux, /bin/sh
é um link para /bin/bash
e quando você o executa, ele parece o caminho usado para executá-lo e (em teoria) se limita apenas a coisas que o Bourne Shell suporta. Da mesma forma, vi
no Linux está realmente vim
, novamente se limitando. Ocasionalmente, você vê os recursos "sangrar". Ocasionalmente, vim
fingir ser vi
fará algo que vim
suporta isso vi
não porque os autores de vim
esqueceram de desabilitar isso no modo "vi compatibilidade com versões anteriores". Eu não ficaria surpreso se bash
fingir que sh
tem algumas características semelhantes de "sangrar". Não ficaria surpreso se algum recurso "funcionasse no Borne Shell no Linux", mas não em um UNIX baseado em System V ou BSD (AIX, OpenBSD, etc.).
Does it have positive ... and understood.
O que você está tentando dizer aqui ? Eu entendi tudo além desse parágrafo.