GNU/Linux >> Tutoriels Linux >  >> Linux

Imprimer une chaîne comprenant des guillemets simples et d'autres caractères spéciaux ?

Comment puis-je écrire ceci avec un script AIX correctement? Mon exigence est d'écrire cette commande dans test.txt :

clock=$(prtconf -s | awk '{print $4,$5}')

J'ai essayé cette commande :

print 'clock=$(prtconf -s | awk '{print $4,$5}')' > test.txt

La sortie écrite dans test.txt me donne :

clock=$(prtconf -s | awk {print ,})

Si j'utilise " " guillemets :

print "clock=$(prtconf -s | awk '{print $4,$5}')"

Cela me donne directement à :

clock=3612 MHz

Comment puis-je résoudre ce problème ?

Réponse acceptée :

Vous devez soit continuer à utiliser des guillemets simples, mais ensuite imprimer ceux dont vous avez besoin dans la sortie "séparément", soit utiliser des guillemets doubles et échapper les signes dollar.

Pour la deuxième option :

print "clock=$(prtconf -s | awk '{print $4,$5}')" > test.txt

Pour le premier :

print 'clock=$(prtconf -s | awk '''{print $4,$5}''')' > test.txt

(C'est 'text' puis a échappé au guillemet simple ' puis 'other text' .)

Par souci d'exhaustivité, notez que print développe les séquences d'échappement de caractères antislash (cela n'a pas d'importance dans votre cas car la chaîne que vous souhaitez imprimer ne contient aucune barre oblique inverse). Pour éviter cela, utilisez print -r .


Linux
  1. Commande bash alias avec guillemets simples et doubles

  2. Supprimez tous les caractères spéciaux et la casse de la chaîne dans bash

  3. Comment taper des caractères spéciaux sous Linux ?

  4. Utiliser find et tar avec des fichiers avec des caractères spéciaux dans le nom

  5. bash :comment passer des arguments de ligne de commande contenant des caractères spéciaux

Commande Linux id - Imprimer les informations d'ID utilisateur et d'ID de groupe

Une commande pour imprimer uniquement les 3 derniers caractères d'une chaîne ?

Que signifient les caractères spéciaux dans Echo {a..z} ?

Afficher les caractères spéciaux cachés dans Vim

Suppression des guillemets simples et doubles dans une chaîne à l'aide des commandes Linux bash / standard uniquement

Comment renommer tous les fichiers avec des caractères spéciaux et des espaces dans un répertoire ?