Cette question est un peu vague, d'où un grand nombre de réponses bizarres ; en fait, certaines des réponses de cette page ne répondent même pas à la question initiale.
Cela dit, si vous voulez sourcer (lire) une variable bash à partir d'un fichier différent, la meilleure solution est toujours d'utiliser un subshell afin qu'aucun conflit ne survienne entre votre script et le fichier qui est lu :
WORKING_VARIABLE=$(source /path/script.sh; echo $FILE_VARIABLE)
Nous utilisons cette méthode dans SlickStack pour sourcer le fichier de configuration plusieurs fois sans conflits.
Si vous prévoyez d'utiliser plusieurs variables du fichier ou si vous avez d'autres raisons d'inclure l'intégralité de l'autre fichier dans votre script actuel, alors vous pourriez sourcer le fichier entier :
source /path/script.sh
Mais dans les cas où il n'y a pas de variables de base, comme dans le cas du PO qui veut lire une simple "chaîne" à partir d'un fichier texte, aucune de ces solutions ne fonctionnera, et vous devrez utiliser une solution adaptée à la syntaxe du code que vous essayez de lire... par exemple, l'un des exemples sur cette page utilisant grep
o awk
combinaisons, ou @thom solution pour lire une ligne donnée d'un fichier en utilisant read
.
TL;DR les subshells sont les meilleurs pour les variables bash, sinon cela dépend de la syntaxe du fichier.... si vous voulez sauvegarder le contenu du fichier comme une variable bash, essayez cat
comme expliqué par @hellork .