Come posso scriverlo correttamente con uno script AIX? Il mio requisito è scrivere questo comando in test.txt:
clock=$(prtconf -s | awk '{print $4,$5}')
Ho provato questo comando:
print 'clock=$(prtconf -s | awk '{print $4,$5}')' > test.txt
L'output scritto in test.txt mi dà:
clock=$(prtconf -s | awk {print ,})
Se utilizzo " "
virgolette:
print "clock=$(prtconf -s | awk '{print $4,$5}')"
Mi dà direttamente a:
clock=3612 MHz
Come posso risolverlo?
Risposta accettata:
Devi continuare a usare le virgolette singole, ma poi stampare quelle che ti servono nell'output "separatamente" oppure usare le virgolette doppie e sfuggire al segno del dollaro.
Per la seconda opzione:
print "clock=$(prtconf -s | awk '{print $4,$5}')" > test.txt
Per il primo:
print 'clock=$(prtconf -s | awk '''{print $4,$5}''')' > test.txt
(Questo è 'text'
quindi è sfuggito a virgolette singole '
quindi 'other text'
.)
Per completezza, tieni presente che print
espande le sequenze di escape del carattere barra rovesciata (questo non ha importanza nel tuo caso perché la stringa che vuoi stampare non contiene alcuna barra rovesciata). Per evitare ciò, usa print -r
.