Alterando valores comuns da biblioteca do projeto do script bash

Alterando valores comuns da biblioteca do projeto do script bash

Eu tenho um projeto com um arquivo bash comum para variáveis. Existe uma maneira de os scripts alterarem isso?

Um exemplo de script de ação:

$ cat sampleaction.sh
#!/bin/bash

# Source variables
. commonlibrary

# Do action according to mode
case $MODE in 
    idle)
        #do nothing
    active)
        #do something

$MODEexiste em um arquivo comum e só é verificado na inicialização de cada script de ação individual. Gostaria que esta variável fosse definida pelo script bash de configuração se contiver um sinalizador, por exemplo. --active.

O script de configuração:

cat initaction.sh
#!/bin/bash

# Source variables
. commonlibrary

# Check flags
while [ $# -gt 0 ]
do 
    case $1 in
        --active)
            shift;
            MODE=active;;
    esac
done

Responder1

Você pode alterar a variável no arquivo comum apenas repetindo os novos valores nesse arquivo:

echo "MODE=active" > commonlibrary

Um exemplo com seu código:

#!/bin/bash
. commonlibrary

case $MODE in 
    idle)
        #do nothing
    active)
        echo "MODE=newmode" > commonlibrary

Agora, se você tivesse mais de uma variável nesse arquivo, isso seria um problema. Você precisaria obter todas as variáveis ​​primeiro e depois construir todos os novos valores e adicioná-los ao arquivo. Há muitas maneiras de fazer isso, você pode pesquisar sobre isso ou pensar do seu próprio jeito.

informação relacionada