0
votes

Je veux imprimer $ en shell, mais il est toujours supprimé

Dans une coque Linux, je veux imprimer: xxx pré>

mais quand je fais écho -e "300 \ N $ 400" code> Il montre: p >

00      
00


2 commentaires

Dupliqué possible de Stackoverflow.com/questions/25036555 / ...


@Geralexgr pas le même problème cependant


4 Réponses :


3
votes

Vous devez échapper dollar $ code>, puisque vous utilisez des guillemets doubles, cela garantira que le mot n'est pas interprété par la coque.

$ echo '$test'
$test


0 commentaires

0
votes

Vous pouvez utiliser une citation unique. Les caractères de conçoivent des guillemets simples (') doivent préserver la valeur littérale de chaque caractère dans les guillemets simples, où, comme englobant des caractères dans des guillemets (") doivent préserver la valeur littérale de tous les caractères dans les doubles citations, avec le Exception des personnages BACK Devis, signe dollar et backslash.

echo -e '$'300"\n"'$'400


2 commentaires

Non, ça ne marche pas. Lorsque vous faites echo '300 \ N $ 400', il affiche 300 \ N $ 400 $


Les citations simples échappent à tout, y compris le nouveau caractère de ligne. Si vous souhaitez imprimer une nouvelle ligne, essayez - écho -e '$ 300 "\ n" 400 $. Ici, vous ne mettez que la signature du dollar en une seule citation et une nouvelle ligne en double citation.



0
votes

$ a une signification particulière à la coquille; Lorsqu'il voit un $ , il s'attend à ce qu'un nom de variable de shell existant soit à suivre. Par exemple, $ chemin .

Dans votre cas, vous ne voulez pas que la coquille pense que vous essayez d'imprimer la valeur des variables Shell, vous devez donc dire à la coque que le $ est en effet ce que vous vouloir être affiché. Ceci est fait en le précisant avec une barre oblique inverse comme expliqué dans d'autres réponses.

Ajout d'une barre oblique inverse avant que les caractères ne soient appelés les échappés (oui, pas la terminologie la plus évidente), et vous utilisez déjà des caractères d'évacuation inconsciemment. ( \ n )

Ceci s'applique également à d'autres opérateurs, tels que = , : , etc. espère que cela aide.


0 commentaires

1
votes

dans la coquille, le caractère $ code> a une signification particulière. Cela signifie "remplacer le mot $ et le mot ou le chiffre ou le caractère spécial suivant avec la valeur d'une variable de ce nom". Par exemple: xxx pré>

Les variables 0, 1, 2, etc. contiennent les arguments de la ligne de commande au programme. Donc, si vous exécutez votre programme comme My-Program Bonjour, Monde Code>, vous pouvez écrire ce code: P>

price=123
echo "The price is $price\$"


0 commentaires