A linguagem shell geral (POSIX) é permitida nos scripts / etc / sysconfig / *? Ou existem restrições?

2

Em scripts /etc/sysconfig/* , é possível ter atribuições comuns de name=value , é claro.

Mas esses arquivos são interpretados por . de um shell, não são? Há alguma restrição na linguagem shell que pode legitimamente (ou seja, de acordo com as regras que existem para o sistema operacional) e portável (ou seja, através de múltiplos sistemas operacionais) ser usada neles? Ou pode-se usar uma linguagem shell (POSIX) arbitrária?

Estou pensando em coisas como:

  • atribuições complexas: abc=/var/${logdir}
  • sourcing scripts comuns de "biblioteca" ou "auxiliar"

Esta documentação do RedHat e esta documentação do OpenMandriva entra em grande profundidade nas várias opções individuais que podem ser definidas, mas são mudas no formato fundamental atual dessas arquivos.

(O equivalente a /etc/sysconfig no Debian é /etc/default , o qual tem regras sobre o formato. O Manual de Políticas do Debian requer que os arquivos em /etc/default "devem conter apenas configurações de variáveis e comentários em POSIX.1-2017 sh format ". Esta questão é sobre o /etc/sysconfig do RedHat.)

    
por Inetquestion 20.08.2018 / 19:32

1 resposta

1

curto: depende

por mais tempo:

Redhat e Mageia / Mandriva usam um link simbólico para que /bin/sh aponte para bash , então quando esses são scripts, você vai começar a agir como sh, ou bash, dependendo se o script de sourcing usa bash ou "sh". Existem dois casos para ambos os sistemas.

Nem todos os arquivos em /etc/sysconfig são scripts; alguns (como /etc/sysconfig/partmon na minha máquina Mageia6 ou systat.ioconf no meu CentOS 7) são apenas dados. Algo lê isso, mas isso não é feito por meio de um script.

    
por 23.08.2018 / 02:33