Ich möchte den folgenden Befehl von Jenkins auszuführen:Wie übergebe ich einen Befehl, der Sonderzeichen über SSH enthält?
ssh -i ~/.ssh/company.pem -o StrictHostKeyChecking=no [email protected]$hostname "supervisorctl start company-$app ; awk -v app=$app '$0 ~ "program:company-"app {p=NR} p && NR==p+6 && /^autostart/ {$0="autostart=true" ; p=0} 1' /etc/supervisord.conf > $$.tmp && sudo mv $$.tmp /etc/supervisord.conf”
Dies ist einer der letzten Schritte eines Auftrags ist, die einen Stapel Cloudformation erzeugt.
Das Ausführen des Befehls vom Terminal des Zielservers funktioniert ordnungsgemäß.
In diesem Schritt möchte ich ssh zu jedem der Server (Mitglieder von ASG innerhalb des neuen Stapels) und suchen und ersetzen eine bestimmte Zeile wie oben in der /etc/supervisord.conf
gezeigt, im Grunde eine bestimmte Dienst für Autostart .
Wenn ich den Befehl, den ich die folgende Fehlermeldung aus:
Usage: awk [POSIX or GNU style options] -f progfile [--] file ...
Usage: awk [POSIX or GNU style options] [--] 'program' file ...
Ich habe versucht, die doppelten Anführungszeichen zu entkommen, aber bekam den gleichen Fehler, eine Ahnung, was ich falsch mache?
Sie könnten die Vorschläge versuchen, die Sie von www.shellcheck.net erhalten – Androbin