Escape-Variablen, um ins Skript zu gelangen

Escape-Variablen, um ins Skript zu gelangen

In Bash habe ich versucht, den folgenden Inhalt in eine Datei zu packen:

for pid in $(ps -lef | grep ssh | grep 2048 | awk '{print $4}'); do kill -9 $pid; done

Egal, wie ich es einfüge, beispielsweise in FileA, es endet immer damit, dass die Variablen durch die tatsächlichen Werte ersetzt werden. Ich habe EOF und Echo. Kein Glück.

Mein Endziel ist, FileA mit dem Inhalt des Einzeilers zu haben.

Antwort1

Wenn Sie sagen "Ich habe EOF", dann meinen Sie vermutlich, Sie haben versucht,hier Dokument, aber haben Sie versucht, das Heredoc zu zitierenWort?

cat <<'EOF' >FileA
for pid in $(ps -lef | grep ssh | grep 2048 | awk '{print $4}'); do kill -9 $pid; done
EOF

Wenn „word“ nicht in Anführungszeichen gesetzt ist, werden alle Zeilen des Here-Dokuments einer Parametererweiterung, Befehlsersetzung und arithmetischen Erweiterung unterzogen, die Zeichenfolge \newline wird ignoriert und die Zeichen „\“, „$“ und „`“ müssen durch „\“ in Anführungszeichen gesetzt werden.

verwandte Informationen