GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Einen String mit einfachen Anführungszeichen und anderen Sonderzeichen drucken?

Wie kann ich das mit einem AIX-Skript richtig schreiben? Meine Anforderung ist, diesen Befehl in test.txt zu schreiben:

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

Ich habe diesen Befehl ausprobiert:

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

Die in test.txt geschriebene Ausgabe gibt mir:

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

Wenn ich " " verwende Anführungszeichen:

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

Es führt mich direkt zu:

clock=3612 MHz

Wie kann ich das lösen?

Akzeptierte Antwort:

Sie müssen entweder weiterhin einfache Anführungszeichen verwenden, aber dann die benötigten in der Ausgabe „separat“ ausdrucken, oder doppelte Anführungszeichen verwenden und die Dollarzeichen maskieren.

Für die zweite Option:

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

Für die erste:

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

(Das ist 'text' dann maskiertes einfaches Anführungszeichen ' dann 'other text' .)

Beachten Sie der Vollständigkeit halber, dass print erweitert Backslash-Escape-Sequenzen (das spielt in Ihrem Fall keine Rolle, da die Zeichenfolge, die Sie drucken möchten, keinen Backslash enthält). Um dies zu vermeiden, verwenden Sie print -r .


Linux
  1. Zeilen zwischen (und einschließlich) zwei Mustern drucken?

  2. Sed mit Sonderzeichen verwenden?

  3. Ein Befehl zum Drucken nur der letzten 3 Zeichen einer Zeichenfolge?

  4. Entfernen Sie alle Sonderzeichen und Groß-/Kleinschreibung aus der Zeichenfolge in Bash

  5. Öffnen Sie die Manpage und suchen Sie mit einem einzigen Befehl nach einer Zeichenfolge

So manipulieren Sie Dateinamen mit Leerzeichen und Sonderzeichen in Linux

Linux-Befehl id - Gibt Benutzer-ID- und Gruppen-ID-Informationen aus

Versteckte Sonderzeichen in Vim anzeigen

bash:wie man Befehlszeilenargumente mit Sonderzeichen übergibt

Wie sende ich Strg+Alt+F1 (und andere spezielle Tastenanschläge) an das X-Fenster?

Wie benenne ich alle Dateien mit Sonderzeichen und Leerzeichen in einem Verzeichnis um?