Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Bash Escaping läuft nicht rund

Frage Entwicklung Batch & Shell

Mitglied: marinux

marinux (Level 2) - Jetzt verbinden

13.12.2013 um 10:57 Uhr, 1529 Aufrufe

Hallo,

ich benutze unter Debian6 die Standard-Shell: GNU bash, version 4.1.5

Dort habe ich folgendes Problem in einem Script, welches mit rrdtool eine Graphik erzeugen soll. In diesem Script soll dynamisch der Kommandozeilenaufruf dazu erweitert werden mit der Variablen $GRAPH

01.
for i in ${!RRAs[*]} 
02.
do 
03.
 
04.
GRAPH="${GRAPH}  DEF:${RRAs[$i]}=${LOG_PATH}/${CLIENT}_data.rrd:${RRAs[$i]}:AVERAGE"\ 
05.
" CDEF:${RRAs[$i]}_graph=${RRAs[$i]},8,*"\ 
06.
" AREA:${RRAs[$i]}_graph#edc24080:\"yyy Downstream\"" 
07.
 
08.
done 
09.
 
10.
        rrdtool graph ${IMAGE_PATH}/${CLIENT}.png\ 
11.
         --end ${DATE_Ymd}\ 
12.
         -t "xxx"\ 
13.
         -h 320\ 
14.
         -w 1200\ 
15.
         -a PNG\ 
16.
         -v bit/s\ 
17.
"$GRAPH"

Das Problem dabei: Stelle ich $GRAPH mit doublequotes unter dem Kommandozeilenaufruf an, dann scheint meine komplette Übergabe als ein String interpretiert zu werden und rrdtool kann es nicht interpretieren. Siehe den Outptut mit bash -x:

01.
rrdtool graph /var/log//xxx.png --end 20131214 -t 'xxx' -h 320 -w 1200 -a PNG -v bit/s  '  DEF:yyy=/var/log/xxx.rrd:yyy:AVERAGE CDEF:yyy_graph=yyy,8,* AREA:yyy_graph#edc24080:"yyy Downstream"'
Stelle ich $GRAPH ohne quotes hinten an, dann bekomme ich:

01.
rrdtool graph /var/log/xxx.png --end 20131214 -t 'xxx' -h 320 -w 1200 -a PNG -v bit/s DEF:yyy=/var/log/xxx.rrd:yyy:AVERAGE 'CDEF:yyy_graph=yyy,8,*' 'AREA:yyy_graph#edc24080:"yyy' 'Downstream"' 
02.
ERROR: 'D' is not a valid function name
Dabei scheint rrdtool den String "Downstream" als Argument zu verstehen, da es als extr String übergeben wird.

Wie mache ich es richtig?

Gruß

Marinux

Ähnliche Inhalte
Batch & Shell
Bash sqlplus oder Bash Fehler? (7)

Frage von Marabunta zum Thema Batch & Shell ...

Batch & Shell
gelöst Bash Umgebungsvariable PATH Splitten (1)

Frage von Marabunta zum Thema Batch & Shell ...

Exchange Server
gelöst Auf SBS 2011 läuft POPcon - bekomme eine Mail nicht raus (9)

Frage von jensgebken zum Thema Exchange Server ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Server mit Netzwerkaussetzern (17)

Frage von SarekHL zum Thema Windows Server ...

LAN, WAN, Wireless
gelöst Batchdatei um einen Proxy einzustellen (14)

Frage von CrystalFlake zum Thema LAN, WAN, Wireless ...