GNU/Linux >> Znalost Linux >  >> Linux

Vytisknout řetězec obsahující jednotlivé uvozovky a další speciální znaky?

Jak to mohu napsat správně pomocí skriptu AIX? Můj požadavek je napsat tento příkaz do test.txt:

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

Zkoušel jsem tento příkaz:

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

Výstup zapsaný v souboru test.txt mi dává:

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

Pokud použiji " " uvozovky:

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

Dává mi to přímo:

clock=3612 MHz

Jak to mohu vyřešit?

Přijatá odpověď:

Musíte buď nadále používat jednoduché uvozovky, ale poté vytisknout ty, které potřebujete ve výstupu „samostatně“, nebo použít dvojité uvozovky a znaky dolaru ukončit.

Pro druhou možnost:

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

Za prvé:

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

(To je 'text' pak uvozovka ' pak 'other text' .)

Pro úplnost poznamenejte, že print rozšiřuje sekvence escape znaků zpětného lomítka (ve vašem případě na tom nezáleží, protože řetězec, který chcete vytisknout, neobsahuje žádné zpětné lomítko). Chcete-li se tomu vyhnout, použijte print -r .


Linux
  1. Jak manipulovat s názvy souborů s mezerami a speciálními znaky v Linuxu

  2. Zabalit příkaz, který obsahuje jednoduché a dvojité uvozovky pro jiný příkaz?

  3. Příkaz pro tisk pouze posledních 3 znaků řetězce?

  1. Odstraňování jednoduchých a dvojitých uvozovek v řetězci pouze pomocí bash / standardních příkazů Linuxu

  2. Jak psát speciální znaky v Linuxu?

  3. Použití find a tar se soubory se speciálními znaky v názvu

  1. Tisknout čáry mezi (a včetně) dvěma vzory?

  2. Jak vytisknout řádky číslo 15 a 25 z každých 50 řádků?

  3. Otevřete manuálovou stránku a vyhledejte řetězec v jediném příkazu