Ich versuche, ein Shell-Skript über SSH über eine Bash-Eingabeaufforderung zu schreiben. Die Shell besteht jedoch darauf, jede Variable, die ich schreiben möchte, zu interpretieren, anstatt sie direkt in eine Datei zu schreiben. Beispielsweise cat <<EOF >checkup.sh\n'$command'EOF
wird einfach als in eine Datei geschrieben ''
. Wie schreibe ich $command
stattdessen? Ich habe jede praktische Methode zum Ausweichen ausprobiert, die mir eingefallen ist.
Wenn es etwas ändert, mache ich es über PHP mitphpseclib.
Antwort1
Versuchen Sie, das erste zu zitieren EOF
, z. B.
cat <<'EOF'
>checkup.sh\n'$command'
EOF
Dies wird auf der Manpage bash(1) im Abschnitt „Hier-Dokumente“ erklärt.