Es gibt vier Ansätze.
1. Setzen Sie den Befehl in Anführungszeichen
Sowohl die Anführungszeichen als auch die Dollarzeichen müssen nicht beachtet werden:
watch "awk 'NR%2==0 '" filename.txt
2. Setzen Sie den Befehl in einfache Anführungszeichen
Innerhalb Apostrophe, weder "
noch $
müssen maskiert werden. Es ist jedoch nicht möglich, einfache Anführungszeichen in eine Zeichenfolge mit einfachen Anführungszeichen einzufügen. Wenn wir ein einfaches Anführungszeichen benötigen, beenden Sie die Zeichenfolge mit einem Anführungszeichen und fügen ein Escape-Zeichen hinzu \'
. Es sieht aus wie das:
watch 'awk '\''NR%2==0 '\' filename.txt
3. Hybrider Ansatz
Wenn Sie beide Optionen kombinieren, setzen wir den ersten Teil der Zeichenfolge in doppelte Anführungszeichen und den zweiten Teil in einfache Anführungszeichen:
watch "awk 'NR%2==0 '\' filename.txt
4. Nicht zitiert, aber vollständig entkommen
Wenn wir den Befehl nicht in Anführungszeichen setzen, müssen wir alle benötigten Shell-aktiven Zeichen mit Escapezeichen versehen. Dazu gehören Leerzeichen, Anführungszeichen, geschweifte Klammern und Dollarzeichen:
watch awk\ \'NR%2==0 \\' filename.txt