J'ai cherché partout. Écho et impression essayés. J'ai essayé des guillemets simples et doubles. Mais j'ai analysé des données et les ai attribuées à une variable et je voudrais ensuite l'évaluer s'il y a une variable en elle. Je vais ensuite remplacer la variable par un caractère générique et rechercher le fichier.
Exemple:
var="file.$DATE.txt"
### Where it goes wrong- Needs to identify that $DATE is within the $var varaible.
test=$(echo "$var"|grep '\$')
if [[ $test ]]
then
### I would use whatever fix is discovered here as well
test=$(echo $test|sed 's/\$[a-zA-Z]*/\*/')
fi
### (Actually pulling from remote machine to local)
cat $test > /tmp/temporary.file
Voici au moins un de mes nombreux échecs:
Prompt> file=blah.$DATE
Prompt> test=$(echo "$file"|grep '\$')
Prompt> echo $test
Prompt>
Prompt>
Je sais que cela a quelque chose à voir avec l'expansion, mais je ne sais pas comment le régler. Toute aide serait appréciée. Merci!
Si tu as besoin $date
à l'intérieur de la variable var:
var='file.$date.txt'
Cela gardera le $ à l'intérieur de la variable:
$ echo "$var" | grep '\$'
file.$date.txt
Utilisez des guillemets simples autour des variables pour empêcher l'expansion de Shell. Exemple echo '$file'
ne se développera pas $file
.
Modifier après le commentaire ci-dessous:
Vous pouvez échapper au $
signez la variable var
avec var="file.\$DATE.txt"
.