Bagaimana saya bisa menulis ini dengan skrip AIX dengan benar? Persyaratan saya adalah menulis perintah ini di test.txt:
clock=$(prtconf -s | awk '{print $4,$5}')
Saya mencoba perintah ini:
print 'clock=$(prtconf -s | awk '{print $4,$5}')' > test.txt
Output yang ditulis dalam test.txt memberi saya:
clock=$(prtconf -s | awk {print ,})
Jika saya menggunakan " "
kutipan:
print "clock=$(prtconf -s | awk '{print $4,$5}')"
Ini memberi saya langsung ke:
clock=3612 MHz
Bagaimana cara mengatasi ini?
Jawaban yang Diterima:
Anda harus tetap menggunakan tanda kutip tunggal, tetapi kemudian mencetak tanda kutip yang Anda butuhkan dalam output “secara terpisah”, atau menggunakan tanda kutip ganda dan menghindari tanda dolar.
Untuk opsi kedua:
print "clock=$(prtconf -s | awk '{print $4,$5}')" > test.txt
Untuk yang pertama:
print 'clock=$(prtconf -s | awk '''{print $4,$5}''')' > test.txt
(Itu 'text'
kemudian lolos dari kutipan tunggal '
lalu 'other text'
.)
Demi kelengkapan, perhatikan bahwa print
memperluas urutan pelarian karakter garis miring terbalik (ini tidak masalah dalam kasus Anda karena string yang ingin Anda cetak tidak mengandung garis miring terbalik). Untuk menghindarinya, gunakan print -r
.