PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [bash] Strings verbinden



hnzi
08-04-2004, 00:17
hi@forum,

wie verbinde ich zwei strings in bash, komme von perl, aber das mit dem punkt '.' geht in der shell offensichtlich nicht?



#!/bin/bash

LOG=/var/log/cjb

if [ -f /var/run/ppp0.pid ]; then
echo "Verbindung besteht (ppp0.pid)"
echo "1" > /dev/null
else
echo "Starte Verbindung neu!"
/usr/bin/pon dsl-provider
echo "`date +"%a, %d.%m.%Y %T"`: " > /usr/bin/perl /etc/network/cjb.pl >> $LOG
fi


echo "`date +"%a, %d.%m.%Y %T"`: " > /usr/bin/perl /etc/network/cjb.pl >> $LOG

ist natürlich falsch, was kommt statt dem '>' hin?

Ausgabe sollte ungefähr so aussehen:

Mon, 01.012001 23.23.23: Updated failed!

wobei 'Updated failed!' die Ausgabe von cjb.pl ist

Kann mir einer helfen?

mfg, hnzi

oafish
08-04-2004, 06:29
Naja, mit > leitest du die Ausgabe in eine Datei um! Denke du musst die Pipe verwenden.

echo "`date +"%a, %d.%m.%Y %T"`: " | $(/usr/bin/perl /etc/network/cjb.pl) >> $LOG

Müsste klappen, nicht getestet!

oafish

sticky bit
08-04-2004, 10:33
Lese ich das richtig? Du willst also die Ausgabe von date und die von einem PERL Skript hintereinander aber in der gleichen Zeile in eine Datei deren Name in $LOG festgelegt ist schreiben?
Wenn ja, dann über gib einfach alles was in eine Zeile soll als Argument an echo, also etwa so:


echo `date` ": " `hostname` ": " "blablabla" >> meine_kleine_log_datei

Da musste dann keinen Concatenation Operator (.) oder sonst was verwenden...
Aber vieleicht hab ichs auch falsch gelesen?

hnzi
08-04-2004, 11:31
das wars:



echo "`date +"%a, %d.%m.%Y %T"`: " "`/usr/bin/perl /etc/network/cjb.pl`" >> $LOG


brachte den gewünschten erfolg! in shell-programmierung bin ich noch am anfang :(

mfg, hnzi