l'ajout d'une variable à un file dans Bash ne fonctionne pas

J'ai un code comme ça

#! /bin/bash $version = "1.0"; $preffix = "ApplicationName."; for f in pack*; do echo "bla bla bla" > myFile.txt echo $preffix >> myFile.txt echo "more stuff" >> myFile.txt echo $version >> myFile.txt done; 

la sortie est

 bla bla bla more stuff 

$ version et $ preffix ne sont pas ajoutés à myFile.txt … pourquoi?

Ce programme fonctionnera où le vôtre ne le fait pas:

 #!/bin/bash version="1.0"; preffix="ApplicationName."; for f in pack*; do echo "bla bla bla" > myFile.txt echo $preffix >> myFile.txt echo "more stuff" >> myFile.txt echo $version >> myFile.txt done; 

Votre affection pour les espaces rend votre programme plus lisible, et aussi le fait ne fonctionne pas.

En outre, même si cela n'a pas d'importance pour ce programme, ce serait une très bonne idée de le faire:

 #!/bin/bash version="1.0"; preffix="ApplicationName."; for f in pack*; do echo "bla bla bla" > myFile.txt echo "$preffix" >> myFile.txt echo "more stuff" >> myFile.txt echo "$version" >> myFile.txt done; 

C'est parce que si vous avez fait quelque chose comme:

 version='1 2' 

dans votre programme d'origine, vous aboutirez à un résultat quelque peu inattendu. Mettre les guillemets autour de vos variables est une très bonne idée pour éviter de telles erreurs mystérieuses.

Le signe $ devant les variables est utilisé pour les lire.

Si vous voulez les assigner, vous devez laisser de côté le signe $ , c'est-à-dire:

 version="1.0" preffix="ApplicationName." 

Aussi, le ; ne sont pas requirejs à la fin des lignes d'affectation.