oiooiooioiioooiioiioiooo
Goto Top

Hochkomma im String vom Bash shell

Hallo an alle,

ich suche eine Möglichkeit einen Vollständigen Befehl in String zur verpacken. Ja ich könnte es da nur eine einzige Funktion auch direkt als Befehl in einen Script hinterlegen. Nur da ich auf eine Barheere gestoßen bin hat mich diese Angelegenheit regelrecht gepackt. Und ich finde keine Lösung.

Folgendes soll als String angegeben werden.


rsync --delete -avzbe 'ssh -i /pfad/zur/id_rsa' /home/benutzer/webserver benutzer@example.com:/var/www  

Ich habe es mir so vorgestellt:

#!/bin/bash

# Config #
BENUTZER=benutzer
ZIELSERVER=example.com
SERVICE=rsync
OPTIONEN='--delete -avce'  
VERBINDUNGSERVICE="ssh -i /home/benutzer/.ssh/rsa_id"  
VONORT=/home/benutzer/webserver
NACHORT=/var/www

# Aktion #
$SERVICE $OPTIONEN $VERBINDUNGSERVICE $VONORT $BENUTZER@$ZIELSERVER:$NACHORT

Das Problem ist die nachfolgende Zeile:

VERBINDUNGSERVICE=(\'ssh -i /home/benutzer/.ssh/rsa_id\')  

Der Bereich muss in Hochsommer sein und egal wie ich das mache bekomme ich das gewünschte Ergebnis nicht. Mit Klammern aller Art mit oder ohne Backslash. Ich finde einfach keine Lösung.

Vielen Dank

Ich

Content-Key: 350228

Url: https://administrator.de/contentid/350228

Printed on: April 23, 2024 at 08:04 o'clock

Mitglied: 133883
133883 Sep 27, 2017 updated at 12:22:25 (UTC)
Goto Top
VERBINDUNGSERVICE="-e 'ssh -i /home/benutzer/.ssh/rsa_id'"   
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Sep 27, 2017 at 12:47:11 (UTC)
Goto Top
Es funktioniert Danke!

Verstehe ich das richtig, dass -e für echo steht?
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Sep 27, 2017 at 12:51:05 (UTC)
Goto Top
Nee Sorry funktioniert nicht! Hab vergessen String in die Kette wieder einzutragen. face-smile

+ rsync --delete -avce -e ''\''ssh' -i '/home/benutzer/.ssh/rsa_id'\''' /home/........  
Mitglied: 133883
133883 Sep 27, 2017 updated at 13:15:26 (UTC)
Goto Top
Zitat von @OIOOIOOIOIIOOOIIOIIOIOOO:

Verstehe ich das richtig, dass -e für echo steht?
Nein das ist der Parameter für rsync !
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Sep 27, 2017 at 13:31:01 (UTC)
Goto Top
Das ist aber nicht der Schwerpunkt.

Dies ist bereits unter OPTIONEN='--delete -avce' hinterlegt. Mein Problem sind die Hochkommas im String.
Mitglied: 133883
133883 Sep 27, 2017 updated at 14:08:52 (UTC)
Goto Top
Zitat von @OIOOIOOIOIIOOOIIOIIOIOOO:

Das ist aber nicht der Schwerpunkt.

Dies ist bereits unter OPTIONEN='--delete -avce' hinterlegt.
Doch, so ist der Parameter ein Teil der vorherigen Variablen und nicht der anderen, die Hochkommata sind kein Problem wenn du es so machst wie oben.
geht hier einwandfrei.
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Sep 27, 2017 at 14:11:06 (UTC)
Goto Top
Komisch, der macht mir aber dann das daraus:

+ rsync --delete -avce -e ''\''ssh' -i '/home/benutzer/.ssh/rsa_id'\''' /home/........