Leerzeichen in Shellscript - Problem
Hallo liebe NG,
ich versuche gerade ein Shell-Script für die Sicherung meiner VM zu schreiben und hänge bisher an folgendem Punkt:
Ich lese mit vmcd -l meine vorhandenen VMs aus übergebe dies an sed (um den Pfaden mit Leerzeichen ein \
voranzustellen und speichere dies in die Variable $machine.
Ausgabe der Variable $machine: /var/lib/vmware/Virtual\ Machines/WinXP-KServer/Windows\ XP\ Professional.vmx
Wenn ich nun jedoch versuche diese Variable im Aufruf $vmcmd $machine getstate zu übergeben, habe ich wieder das Problem mit den Leerzeichen. Das Setzen des Pfades in "" half leider auch nicht.
Ich bin mir sicher, dass es nur ein kleines Problem ist und ihr mir bestimmt weiterhelfen könnt.
Danke im Vorraus!
Codeauszug:
ich versuche gerade ein Shell-Script für die Sicherung meiner VM zu schreiben und hänge bisher an folgendem Punkt:
Ich lese mit vmcd -l meine vorhandenen VMs aus übergebe dies an sed (um den Pfaden mit Leerzeichen ein \
voranzustellen und speichere dies in die Variable $machine.
Ausgabe der Variable $machine: /var/lib/vmware/Virtual\ Machines/WinXP-KServer/Windows\ XP\ Professional.vmx
Wenn ich nun jedoch versuche diese Variable im Aufruf $vmcmd $machine getstate zu übergeben, habe ich wieder das Problem mit den Leerzeichen. Das Setzen des Pfades in "" half leider auch nicht.
Ich bin mir sicher, dass es nur ein kleines Problem ist und ihr mir bestimmt weiterhelfen könnt.
Danke im Vorraus!
Codeauszug:
#User definable variables
BACKUPLOG="/var/backup/vm-hosts-backup.log"
TARGET="/var/backup/"
# hard variables
vmcmd=/usr/bin/vmware-cmd
ON="getstate() = on"
OFF="getstate() = off"
SUSPENDED="getstate() = suspended"
machine=$(echo $($vmcmd -l) | sed -e 's/\ /\\\ /g')
echo $machine
echo "Backing up server $machine" >> $BACKUPLOG
echo $(date) >> $BACKUPLOG
state=$($vmcmd $machine getstate)
echo $state
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 77084
Url: https://administrator.de/contentid/77084
Ausgedruckt am: 27.11.2024 um 04:11 Uhr
2 Kommentare
Neuester Kommentar
Morgen,
probier ma anstatt machine=$(echo $($vmcmd -l) | sed -e 's/\ /\\\ /g') nur machine=$($vmcmd -l | sed -e 's/\ /\\\ /g') bzw machine=$(echo -n $($vmcmd -l) | sed -e 's/\ /\\\ /g').
mfg godlike P
probier ma anstatt machine=$(echo $($vmcmd -l) | sed -e 's/\ /\\\ /g') nur machine=$($vmcmd -l | sed -e 's/\ /\\\ /g') bzw machine=$(echo -n $($vmcmd -l) | sed -e 's/\ /\\\ /g').
mfg godlike P