Shell

列印包含單引號和其他特殊字元的字元串

  • September 13, 2019

如何正確使用 AIX 腳本編寫它?我的要求是在 test.txt 中寫這個命令:

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

我試過這個命令:

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

用 test.txt 編寫的輸出給了我:

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

如果我使用" "引號:

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

它直接讓我:

clock=3612 MHz

我該如何解決這個問題?

您需要繼續使用單引號,然後“單獨”在輸出中列印出您需要的引號,或者使用雙引號並轉義美元符號。

對於第二個選項:

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

為了第一:

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

(然後'text'轉義單引號。)\'``'other text'

為了完整起見,請注意print擴展反斜杠字元轉義序列(這在您的情況下無關緊要,因為您要列印的字元串不包含任何反斜杠)。為避免這種情況,請使用print -r.

引用自:https://unix.stackexchange.com/questions/136369