A "categoria" em que aliases, funções, variáveis etc. se enquadram é environment , como em "shell environment".
Variáveis e aliases são muito diferentes, assim como links simbólicos (que não são parte do ambiente shell, mas coisas no sistema de arquivos, independente do shell).
-
Uma variável, seja uma variável de shell ou uma variável de ambiente, contém dados na forma de strings.
-
Um alias é um atalho prático para você usar em sessões de shell interativas para economizar na digitação de comandos repetidos com frequência. Os aliases são expandidos em um estágio de avaliação separado das variáveis. Observe que, em scripts, você provavelmente desejará usar funções em vez de aliases, pois são mais do que simples substituições de texto dos nomes de comandos 1 .
-
Um link simbólico é um tipo especial de arquivo no sistema de arquivos que é automaticamente resolvido para um caminho quando acessado (livremente).
Quanto ao que chamar seu arquivo; soa como um arquivo que deve ser originado (através de .
em qualquer shell sh
-like ou com source
em shells com esse comando) para configurar um ambiente para algum aplicativo ou processo, então Eu poderia sugerir algo como application-name.env
ou process-name.env
, possivelmente?
1 Aliases em scripts é um problema para mim. Aliases, como eu disse, são para conveniência em shells interativos, onde se pode sempre adicionar o -F
flag a ls
e, portanto, definir alias ls='ls -F'
ou algo similar. Nos scripts, porém, você gostaria de ser mais detalhado. Há pelo menos duas razões para isso (as opiniões pessoais seguem):
-
Dizer
cp
ourm
em um script deve fazer exatamente isso . Comandos padrão não devem ser substituídos por aliases em scripts, ou eles serão extremamente problemáticos para depurar. -
Os alias são para uso na linha de comando interativa (você os digita uma e outra vez, para velocidade e / ou para salvar seus dedos e mãos). Um script é escrito uma vez (e possivelmente melhorado). Isso permite que você escreva o roteiro de modo que possa ser facilmente lido e compreendido pelos outros (ou por você mesmo em algumas semanas), o que significa que você pode se permitir ser mais detalhado ao escrever um roteiro. O benefício é a manutenção.
-
Um alias não pode receber argumentos, pelo menos não da mesma maneira que uma função pode. Isso torna as funções muito mais versáteis que os aliases. Em vez de aliasing um comando, você faz uma função que não só chama o utilitário, verifica se os argumentos estão corretos antes de chamá-lo e se o resultado volta como esperado, por exemplo. Uma função poderia até mesmo fazer sua própria análise de linha de comando, se assim desejar, e poderia, dessa forma, servir como seu próprio "utilitário" dentro do script.
Estou escrevendo alguns dos meus scripts em projetos onde muitas pessoas estão envolvidas, para o trabalho, então essa é a minha perspectiva.