Não há "espaço variável de ambiente global". Se você quiser tornar seus dados persistentes , então você precisa armazená-los em algum arquivo. Exemplo:
#!/bin/sh
# Path to the persistent storage file
file=~/name.txt
# If the persistent file exists, use its contents as name
if [ -e "$file" ]; then
name=$(cat "$file")
else
# Use a default value otherwise
name="Bob"
fi
echo "Your name was: $name"
echo "What is your name?"
read new_name
# If a new (non-empty) name is given, save it to the file
if [ -n "$new_name" ]; then
echo "$new_name" > "$file"
fi
Se você quiser disponibilizar uma variável para cada novo processo, poderá colocá-la em /etc/environment
(requer privilégios de root) ou ~/.profile
. Depois de colocá-lo nessas variáveis, você geralmente precisa fazer o login novamente. A menos que seja absolutamente necessário, eu recomendo contra essa abordagem. Ele coloca o conteúdo na memória de todo (novo) processo, por isso não é adequado para armazenar senhas ou valores grandes.
Bem, se você quiser apenas expor os valores a sessões de shell interativas , poderá colocá-lo em ~/.bashrc
. Experimente, anexe echo "Hello $USER"
ao arquivo. Ele será executado toda vez que você abrir um novo shell. Não será executado para logins gráficos e tal devido a uma linha como:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return