A solução mais fácil é provavelmente armazenar a variável em um arquivo.
Escreva para um arquivo:
echo "13" > /path/to/my-variable.txt
Leia a primeira linha de um arquivo na variável line
:
read -r line < /path/to/my-variable.txt
Eu tenho um script que incrementa uma variável de ambiente, mas só funciona se eu o executar perpendendo-o com "source" ou com um ".". Infelizmente, isso significa que, se eu tentar ligá-lo a uma chave, não consigo usar o modificador "source", portanto, as variáveis de ambiente não mudam realmente.
(Supondo que um TEST inteiro já exista no ambiente shell):
#!/bin/bash
let "TEST=$TEST+1"
echo $TEST
export TEST=$TEST
Idealmente, esse script incrementaria a variável de teste, mas (se eu entender isso corretamente), ele o fará apenas no ambiente "sub-shell" que esse script gera quando é executado. É possível modificar uma variável de ambiente dessa maneira sem usar "source"? Se não, de que outra forma eu poderia alcançar meu objetivo? Eu apreciaria qualquer ajuda, obrigado!
A solução mais fácil é provavelmente armazenar a variável em um arquivo.
Escreva para um arquivo:
echo "13" > /path/to/my-variable.txt
Leia a primeira linha de um arquivo na variável line
:
read -r line < /path/to/my-variable.txt
Semelhante à resposta fornecida sobre o uso de um arquivo .txt, você provavelmente poderia fazer algo com um armazenamento simples de valor-chave, como redis ou memcached (ou um banco de dados, mas isso é muito exagerado).
$ sudo apt-get install redis-server redis-tools
$ redis-cli SET testing 5
OK
$ redis-cli GET testing
"5"