¿Cómo puedo escribir esto correctamente con un script de AIX? Mi requisito es escribir este comando en test.txt:
clock=$(prtconf -s | awk '{print $4,$5}')
Probé este comando:
print 'clock=$(prtconf -s | awk '{print $4,$5}')' > test.txt
La salida escrita en test.txt me da:
clock=$(prtconf -s | awk {print ,})
Si uso " "
comillas:
print "clock=$(prtconf -s | awk '{print $4,$5}')"
Me da directamente a:
clock=3612 MHz
¿Cómo puedo solucionar esto?
Respuesta aceptada:
Debe seguir usando comillas simples, pero luego imprimir las que necesita en la salida "por separado", o usar comillas dobles y escapar de los signos de dólar.
Para la segunda opción:
print "clock=$(prtconf -s | awk '{print $4,$5}')" > test.txt
Para el primero:
print 'clock=$(prtconf -s | awk '''{print $4,$5}''')' > test.txt
(Eso es 'text'
luego escapó de comillas simples '
luego 'other text'
.)
En aras de la exhaustividad, tenga en cuenta que print
expande las secuencias de escape de caracteres de barra invertida (esto no importa en su caso porque la cadena que desea imprimir no contiene ninguna barra invertida). Para evitar esto, use print -r
.