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
.