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
Please also mark the comments that contributed to the solution of the article
Content-Key: 77084
Url: https://administrator.de/contentid/77084
Printed on: April 24, 2024 at 06:04 o'clock
2 Comments
Latest comment
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