SSH heredoc: bash-Eingabeaufforderung

Ich bin versucht, schreiben Sie ein shell-Skript, welches SSHs in einen server und fordert den Benutzer dann zur Eingabe eines Datei/Ordner.

ssh $SERVER <<EOF
cd downloads/
read -e -p "Enter the path to the file: " FILEPATH
echo $FILEPATH
eval FILEPATH="$FILEPATH"

echo "Downloading $FILEPATH to $CLIENT"
EOF

Ich bin mit der heredoc-anstelle von doppelten Anführungszeichen nach dem SSH-um diese Befehle auszuführen, weil mein shell-script ist ziemlich groß und ich möchte nicht entkommen jedes doppelte Anführungszeichen ein.

Als ich mit doppelten Anführungszeichen, in der Eingabeaufforderung funktionierte gut. Aber nun, ich bin im Gebrauch der heredoc -, wird die Eingabeaufforderung nicht mehr funktioniert.

Was kann ich tun, um die Eingabeaufforderung zu arbeiten, mit der heredoc? Und wenn nicht, gibt es eine Möglichkeit, dass ich mein layout Skript, so dass die Eingabeaufforderung funktioniert ohne Verpackung, alles in Anführungszeichen und Escape-Zeichen, etwa so:

ssh $SERVER "
cd downloads/
read -e -p \"Enter the path to the file: \" FILEPATH
echo $FILEPATH
eval FILEPATH=\"$FILEPATH\"

echo \"Downloading $FILEPATH to $CLIENT\"
exit
"

InformationsquelleAutor | 2012-12-18

Schreibe einen Kommentar