
Ich greife mit dem SSH-Befehl und einer PEM-Datei auf einen Remote-Computer zu. Mein Code lautet wie folgt:
#!/bin/bash
ssh -i rijo.pem [email protected] <<EOF
sudo -s
var=`cat /opt/revsw-config/varnish/sites/rijotests4934567_revsw_net.json | egrep 'SERVER_NAME' | cut -b 19-44`
EOF
Wenn ich dieses Skript verwende, kann ich den Wert nicht in der Variable speichern, aber wenn ich den Befehl im Terminal ausführe, funktioniert es. Wenn ich das Skript ausführe, erhalte ich eine No such file or directory found
Fehlermeldung. Können Sie mir dabei bitte helfen?
Antwort1
Der Befehl
cat /opt/revsw-config/varnish/sites/rijotests4934567_revsw_net.json | egrep 'SERVER_NAME' | cut -b 19-44
wird ausgeführtörtlichauf Ihrem Computer, bevor es an SSH gesendet wird. Das ist wahrscheinlich nicht das, was Sie wollten. Das „Here-Dokument“ führt Variablen- und Prozesssubstitutionen durch, daher müssen Sie die Backticks umgehen, um das gewünschte Ergebnis zu erhalten.