Cambiar los valores comunes de la biblioteca de proyectos desde el script bash

Cambiar los valores comunes de la biblioteca de proyectos desde el script bash

Tengo un proyecto con un archivo bash común para variables. ¿Hay alguna forma de que los scripts los cambien?

Un script de acción de muestra:

$ cat sampleaction.sh
#!/bin/bash

# Source variables
. commonlibrary

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

$MODEexiste en un archivo común y solo se verifica al iniciar cada script de acción individual. Me gustaría que el script de configuración de bash establezca esta variable si contiene una bandera, por ejemplo. --active.

El script de configuración:

cat initaction.sh
#!/bin/bash

# Source variables
. commonlibrary

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

Respuesta1

Puede cambiar la variable en el archivo común simplemente haciendo eco de los nuevos valores en ese archivo:

echo "MODE=active" > commonlibrary

Un ejemplo con tu código:

#!/bin/bash
. commonlibrary

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

Ahora bien, si tuvieras más de una variable en ese archivo, esto plantearía un problema. Primero deberá obtener cada variable y luego crear todos los valores nuevos y agregarlos al archivo. Hay muchas maneras de hacerlo, puedes investigar sobre ello o pensar en tu propia manera.

información relacionada