É possível ter variáveis bash persistentes entre execuções

1

Estou tentando criar um script de inicialização que consulta losetup -f para um dispositivo de loop livre. Dentro do script de inicialização eu tenho um start() que consulta losetup -f para o dispositivo de loop livre para configurar algumas coisas, e há também um stop() .

O problema que não consigo descobrir é como posso armazenar a saída de losetup -f em uma questão persistente que esteja protegida contra acidentes do usuário (sobrescrevendo variáveis de ambiente, etc) para que stop() seja chamado a qualquer momento Eu posso ter acesso a este dispositivo de loop de scripts de init específico que foi atribuído.

A razão pela qual eu preciso de persistência em qual dispositivo de loop é atribuído é que existem 2-3 scripts de init que estarão lidando com dispositivos de loop (pelo menos 2 dispositivos de loop por script de init) e cada um precisa controlar .

Devo atribuir a saída do múltiplo losetup -f a um arquivo para que eu possa lê-lo novamente por meio do loop quando preciso separar / trabalhar com ele? Se sim, o que é um diretório padrão para este tipo de dados.

    
por user182786351 20.06.2015 / 21:23

2 respostas

1

De acordo com os comentários, criei uma solução:

start() {
    loop='losetup -f'
    echo $loop > /var/run/init-script-name.loop
    #continue to use $loop as the reference to your loop device
}

stop() {
    loop='cat /var/run/init-script-name.loop'
    rm /var/run/init-script-name.loop
    #continue to use $loop as the reference to this scripts loop device
}

Isso permite que cada script de inicialização salve seu dispositivo de loop em um arquivo que ele possa referenciar se precisar obter o dispositivo que foi atribuído em uma data posterior. Se vários dispositivos forem necessários, você poderá fazer o eco de todos eles no arquivo (um por linha) e usar while read -r /path/to/file para gerar uma estrutura parecida com uma matriz, na qual você pode iterar.

    
por 20.06.2015 / 22:53
0

Talvez isso possa ajudar.

Armazenando as vars,

declare -p var_name another_var more_vars > path_to_init_file

Recuperando,

source path_to_init_file
    
por 20.06.2015 / 22:08