enregistrer un fichier texte dans une variable dans bash

Comment puis-je lire un fichier texte et l’enregistrer dans une variable en bash? mon code est ici:

#!/bin/bash TEXT="dummy" echo "Please, enter your project name" read PROJECT_NAME mkdir $PROJECT_NAME cp -r -f /home/reza/Templates/Template\ Project/* $PROJECT_NAME cd $PROJECT_NAME/Latest TEXT = `cat configure.ac ` ## problem is here !!! CHANGED_TEXT=${TEXT//ProjectName/$PROJECT_NAME} echo $CHANGED_TEXT 

Le problème est que vous avez un espace supplémentaire. L’affectation nécessite des espaces nuls entre l’opérateur = . Cependant, avec bash vous pouvez utiliser:

 TEXT=$( 

Vous voulez également vous assurer que vous citez vos variables pour préserver les nouvelles lignes

 CHANGED_TEXT="${TEXT//ProjectName/$PROJECT_NAME}" echo "$CHANGED_TEXT" 

Essayer

 TEXT=`cat configure.ac` 

Cela devrait fonctionner.

Modifier:

Pour clarifier, la différence réside dans l’espacement: placer un espace après TEXT fait que bash essaie de le rechercher en tant que commande.

Pour exécuter une commande et renvoyer le résultat dans le script bash pour enregistrer dans une variable, par exemple, vous devez écrire la commande inner dans var = $ (commande). Et vous ne devez pas donner d’espaces entre var, ‘=’ et $ (). Regarde ça

 TEXT=$('cat configure.ac') 

Maintenant, echo $TEXT renvoie le contenu par fichier configure.ac.