web-dev-qa-db-fra.com

Comment puis-je écrire et ajouter à l'aide de la commande echo dans un fichier

J'essaie d'écrire un script qui utilisera echo et écrit/ajoute à un fichier. Mais j'ai "" dans la syntaxe déjà dans les chaînes .. disons ..

echo "I am "Finding" difficult to write this to file" > file.txt
echo "I can "write" without double quotes" >> file.txt

Quelqu'un peut-il s'il vous plaît aider à comprendre cela, vraiment apprécié.

BR, SM

16
user2500742

Si vous souhaitez avoir des guillemets, vous devez les échapper en utilisant le caractère barre oblique inverse.

echo "I am \"Finding\" difficult to write this to file" > file.txt echo
echo "I can \"write\" without double quotes" >> file.txt

Il en va de même si vous voulez aussi écrire le \ lui-même, car il peut provoquer des effets secondaires. Vous devez donc utiliser \\

Une autre option serait d'utiliser le `` '' au lieu des guillemets.

echo 'I am "Finding" difficult to write this to file' > file.txt echo
echo 'I can "write" without double quotes' >> file.txt

Cependant, dans ce cas, la sous-station de variable ne fonctionne pas, donc si vous souhaitez utiliser des variables, vous devez les mettre à l'extérieur.

echo "This is a test to write $PATH in my file" >> file.txt
echo 'This is a test to write '"$PATH"' in my file' >> file.txt
22
Devolus

Si vous avez des caractères spéciaux, vous pouvez les échapper avec une barre oblique inverse pour les utiliser au besoin:

echo "I am \"Finding\" difficult to write this to file" > file.txt
echo "I can \"write\" without double quotes" >> file.txt

Cependant, vous pouvez également utiliser la fonction "EOF" du Shell avec la commande tee, ce qui est vraiment bien pour écrire toutes sortes de choses:

tee -a file.txt <<EOF

I am "Finding" difficult to write this to file
I can "write" without double quotes
EOF

Cela écrira pratiquement N'IMPORTE QUEL contenu que vous voulez directement dans ce fichier et échappera tous les caractères spéciaux jusqu'à ce que vous arriviez à EOF.

* Modifié pour ajouter le commutateur d'ajout, pour éviter d'écraser le fichier:
-a

4
JoeLinux