mehrere skripte (z.B. getit) hintereinander ausführen

K

KlaPe

Grünschnabel
Hallo miteinander,

bin eine absolute Linux/Unix-Null und werde es auch bleiben???

Problemstellung:

Benötige einen skript-Entwurf, der verschiedene befehle hintereinander durchführen soll, eventuell mit entsprechender "Zeituhr".
Beispiel:

es oll ein ordner "new_1" erstellt werden (Eingabe wäre "md new_1" - ENTER)
dann soll in den Ordner gewechselt werden (Eingabe wäre "cd new_1" - ENTER)
dann soll ein getit-befehl ausgeführt werden (Eingabe wäre "sh /home/getit -s=http://www.stryder.de/pics/ -cs=1 -ce=6 -sz=1 -pre=ec -suf= -ext=.jpg" - ENTER)
dann sollte das system z.B. 5 min. (ca wert) warten
dann sollte wieder in den überordner gewechselt werden (Eingabe wäre "cd" - ENTER)
dann sollte ein neuer Ordner angelegt werden usw.

Hat jemand ein script in der Art, bzw. wie müßte so ein script aufgebaut sein?

Vielen Dank für Unterstützung und Hilfe ......

KlaPe (Klaus-Peter)
 
KlaPe schrieb:
Hallo miteinander,

bin eine absolute Linux/Unix-Null und werde es auch bleiben???

Problemstellung:

Benötige einen skript-Entwurf, der verschiedene befehle hintereinander durchführen soll, eventuell mit entsprechender "Zeituhr".
Beispiel:

es oll ein ordner "new_1" erstellt werden (Eingabe wäre "md new_1" - ENTER)
dann soll in den Ordner gewechselt werden (Eingabe wäre "cd new_1" - ENTER)
dann soll ein getit-befehl ausgeführt werden (Eingabe wäre "sh /home/getit -s=http://www.stryder.de/pics/ -cs=1 -ce=6 -sz=1 -pre=ec -suf= -ext=.jpg" - ENTER)
dann sollte das system z.B. 5 min. (ca wert) warten
dann sollte wieder in den überordner gewechselt werden (Eingabe wäre "cd" - ENTER)
dann sollte ein neuer Ordner angelegt werden usw.

Hat jemand ein script in der Art, bzw. wie müßte so ein script aufgebaut sein?

Vielen Dank für Unterstützung und Hilfe ......

KlaPe (Klaus-Peter)



PS: hier noch das GETIT-SCRIPT
********************************************************************************************************

#!/bin/sh

clear
Input="$1 $2 $3 $4 $5 $6 $7 $8 $9"

# Misc Stuff

if [ "$Input" = " " ] ; then
echo "Error not enough parameters, try --help"
exit
fi

if [ "$1" = "--info" ] ; then
echo "GetIt 0.2.1d"
echo "(c)copyright by United Programmer Group 2000-2005"
echo "written by Maniac"
echo "with support from VinciEx aka Kais0r"
echo "Use this script at your own risk"
echo "No WARRANTY"
exit
fi

if [ "$1" = "--help" ] ; then
echo "GetIt 0.2.1d"
echo "Other Commands: --info, -0"
echo "Usage: "
echo "sh getit -s=[Source] -cs=[CounterStart] -ce=[CounterEnd] -sz=[StepSize] -pre=[Prefix] -suf=[Suffix] -ext=[Extension]"
echo ""
echo "e.g."
echo "sh getit -s=www.google.de -cs=1 -ce=10 -sz=1 -pre=foo -suf=bar -ext=.jpg"
echo ""
echo ""
echo -e "-0\tLet the counter fill in zeros, to count like on digicams"
echo -e "\te.g. 0100 0010 0001 instead of 100 10 1"
exit
fi


# ----> Source Stuff <----


Part=`echo "$Input" | cut -d " " -f 1`

if [ "${Part:0:3}" = "-s=" ] ; then
URL="${Part:3}"
fi

if [ "${Part:0:3}" = "-cs" ] ; then
CounterStart="${Part:4}"
fi


if [ "${Part:0:3}" = "-ce" ] ; then
CounterEnd="${Part:4}"
fi

if [ "${Part:0:3}" = "-sz" ] ; then
StepSize="${Part:4}"
fi

if [ "${Part:0:4}" = "-pre" ] ; then
Prefix="${Part:5}"
fi

if [ "${Part:0:4}" = "-suf" ] ; then
Suffix="${Part:5}"
fi

if [ "${Part:0:4}" = "-ext" ] ; then
Extension="${Part:5}"
fi

if [ "${Part:0:2}" = "-0" ] ; then
InclZero="Yes"
fi

# ----> Same Shit for CounterStart <----


Part=`echo "$Input" | cut -d " " -f 2`

if [ "${Part:0:3}" = "-s=" ] ; then
URL="${Part:3}"
fi

if [ "${Part:0:3}" = "-cs" ] ; then
CounterStart="${Part:4}"
fi


if [ "${Part:0:3}" = "-ce" ] ; then
CounterEnd="${Part:4}"
fi

if [ "${Part:0:3}" = "-sz" ] ; then
StepSize="${Part:4}"
fi

if [ "${Part:0:4}" = "-pre" ] ; then
Prefix="${Part:5}"
fi

if [ "${Part:0:4}" = "-suf" ] ; then
Suffix="${Part:5}"
fi

if [ "${Part:0:4}" = "-ext" ] ; then
Extension="${Part:5}"
fi

if [ "${Part:0:2}" = "-0" ] ; then
InclZero="Yes"
fi


# ----> Same for Counter End <----


Part=`echo "$Input" | cut -d " " -f 3`


if [ "${Part:0:2}" = "-s=" ] ; then
URL="${Part:3}"
fi

if [ "${Part:0:3}" = "-cs" ] ; then
CounterStart="${Part:4}"
fi


if [ "${Part:0:3}" = "-ce" ] ; then
CounterEnd="${Part:4}"
fi

if [ "${Part:0:3}" = "-sz" ] ; then
StepSize="${Part:4}"
fi

if [ "${Part:0:4}" = "-pre" ] ; then
Prefix="${Part:5}"
fi

if [ "${Part:0:4}" = "-suf" ] ; then
Suffix="${Part:5}"
fi

if [ "${Part:0:4}" = "-ext" ] ; then
Extension="${Part:5}"
fi

if [ "${Part:0:2}" = "-0" ] ; then
InclZero="Yes"
fi


# ----> And again for StepSize <----

Part=`echo "$Input" | cut -d " " -f 4`

if [ "${Part:0:2}" = "-s=" ] ; then
URL="${Part:3}"
fi

if [ "${Part:0:3}" = "-cs" ] ; then
CounterStart="${Part:4}"
fi


if [ "${Part:0:3}" = "-ce" ] ; then
CounterEnd="${Part:4}"
fi

if [ "${Part:0:3}" = "-sz" ] ; then
StepSize="${Part:4}"
fi

if [ "${Part:0:4}" = "-pre" ] ; then
Prefix="${Part:5}"
fi

if [ "${Part:0:4}" = "-suf" ] ; then
Suffix="${Part:5}"
fi

if [ "${Part:0:4}" = "-ext" ] ; then
Extension="${Part:5}"
fi

if [ "${Part:0:2}" = "-0" ] ; then
InclZero="Yes"
fi


# ----> And again for Prefix <----


Part=`echo "$Input" | cut -d " " -f 5`

if [ "${Part:0:2}" = "-s=" ] ; then
URL="${Part:3}"
fi

if [ "${Part:0:3}" = "-cs" ] ; then
CounterStart="${Part:4}"
fi


if [ "${Part:0:3}" = "-ce" ] ; then
CounterEnd="${Part:4}"
fi

if [ "${Part:0:3}" = "-sz" ] ; then
StepSize="${Part:4}"
fi

if [ "${Part:0:4}" = "-pre" ] ; then
Prefix="${Part:5}"
fi

if [ "${Part:0:4}" = "-suf" ] ; then
Suffix="${Part:5}"
fi

if [ "${Part:0:4}" = "-ext" ] ; then
Extension="${Part:5}"
fi

if [ "${Part:0:2}" = "-0" ] ; then
InclZero="Yes"
fi


# ----> And again for Suffix <----


Part=`echo "$Input" | cut -d " " -f 6`

if [ "${Part:0:2}" = "-s=" ] ; then
URL="${Part:3}"
fi

if [ "${Part:0:3}" = "-cs" ] ; then
CounterStart="${Part:4}"
fi


if [ "${Part:0:3}" = "-ce" ] ; then
CounterEnd="${Part:4}"
fi

if [ "${Part:0:3}" = "-sz" ] ; then
StepSize="${Part:4}"
fi

if [ "${Part:0:4}" = "-pre" ] ; then
Prefix="${Part:5}"
fi

if [ "${Part:0:4}" = "-suf" ] ; then
Suffix="${Part:5}"
fi

if [ "${Part:0:4}" = "-ext" ] ; then
Extension="${Part:5}"
fi

if [ "${Part:0:2}" = "-0" ] ; then
InclZero="Yes"
fi


# ----> And the last one for Extension <----

Part=`echo "$Input" | cut -d " " -f 7`

if [ "${Part:0:2}" = "-s=" ] ; then
URL="${Part:3}"
fi

if [ "${Part:0:3}" = "-cs" ] ; then
CounterStart="${Part:4}"
fi


if [ "${Part:0:3}" = "-ce" ] ; then
CounterEnd="${Part:4}"
fi

if [ "${Part:0:3}" = "-sz" ] ; then
StepSize="${Part:4}"
fi

if [ "${Part:0:4}" = "-pre" ] ; then
Prefix="${Part:5}"
fi

if [ "${Part:0:4}" = "-suf" ] ; then
Suffix="${Part:5}"
fi

if [ "${Part:0:4}" = "-ext" ] ; then
Extension="${Part:5}"
fi

if [ "${Part:0:2}" = "-0" ] ; then
InclZero="Yes"
fi


echo "Information Summery:"
echo "-------------------------------------------------------"
echo -e "Source URL:\t" $URL
echo -e "CounterStart:\t" $CounterStart
echo -e "CounterEnd:\t" $CounterEnd
echo -e "Step-Size:\t" $StepSize
echo -e "Prefix:\t\t" $Prefix
echo -e "Suffix:\t\t" $Suffix
echo -e "Extension:\t" $Extension
if [ "$InclZero" = "" ] ; then
InclZero="No"
fi
echo -e "Fill in Zeros:\t" $InclZero
echo "-------------------------------------------------------"
echo ""
echo ""
echo "Starting in... 3"
sleep 1
echo "Starting in... 2"
sleep 1
echo "Starting in... 1"
sleep 1
echo "Starting NOW!"

COUNTER=$CounterEnd

until [ $COUNTER -lt $CounterStart ]; do

if [ "$InclZero" = "Yes" ] ; then

if [ "$COUNTER" -gt "999" ] ; then
COUNTER=$COUNTER

elif [ "$COUNTER" -gt "99" ] ; then
COUNTER="0$COUNTER"

elif [ "$COUNTER" -gt "9" ] ; then
COUNTER="00$COUNTER"

elif [ "$COUNTER" -gt "-1" ] ; then
COUNTER="000$COUNTER"
fi


echo "File: " $Prefix$COUNTER$Suffix$Extension
wget $URL/$Prefix$COUNTER$Suffix$Extension

else

echo "File: " $Prefix$COUNTER$Suffix$Extension
wget $URL/$Prefix$COUNTER$Suffix$Extension

fi
let COUNTER-=$StepSize
done

******************************************************************************************************
 
nojo ohne es viel probiert zu haben, speziell "seq" bin ich mir nicht sicher.
alternativ koenntenst du ein skript auch ueber einen "cron"-job aufrufen, der dann im Hintergrund alles erledigt. Die Directories koennte man dann noch mit einem Zeit/Datumsstempel erstellen...
... das ist also wirklich nur ein Ansatz ...
HTH

Code:
#!/bin/sh

COUNT=10  # how many directories
TIME=300  # seconds
BASE=/tmp # where dirs are created

for DIR in `seq 1 $COUNT`
do
        mkdir $BASE/newdir_$DIR
        cd $BASE/newdir_$DIR

        sh /home/getit -s=http://www.stryder.de/pics/ -cs=1 -ce=6 -sz=1 -pre=ec -suf= -ext=.jpg

        sleep $TIME
done
 
Hallöle,

erst mal vielen Dank!!!!

in erster linie bräuchte ich eigentlich nur den Aufbau eines skriptes mit den einzelnen Befehlen hintereinander.
Beispiel:
Ordner 1 anlegen
in Ordner 1 wechseln
GETIT (1) ausführen
zurückwechseln
Zeitpause(1)
Ordner 2 anlegen
in Ordner 2 wechseln
GETIT (2) ausführen
zurückwechseln
Zeitpause(2)

usw

Scriptende

Ich teste einfach mal a bisserl - die nacht ist noch lange.....

Gruß KlaPe (Klaus-Peter)
 
Hurra,
meine erste Fehlermeldung im ersten Versuch:

line 8: syntax error near unexpected token `do'

wenn ich nur wüßte was die meldung mir sagen will......

Bitte-bitte bitte helft mir mit einem ganz einfachen script mit Befehl1 - Befehl2 - Befehl3 - Befehl4 usw. ohne Variable und anderem, was mir das Leben schwer machen könnte......

Vielen vielen Dank

Gruß KlaPe
 
naja eigentlich steht ja eh schon alles oben, aber ...
Code:
mkdir ordner1
cd ordner1
getit ...
cd ..
sleep 300
mkdir ordner2
cd ordner2
getit ...
cd ..
sleep 300
# etc.
 
Hallo

GNU bash, version 3.00.16(1)-release (i386-pc-linux-gnu)

P="/Pfad/basis";
TIMEOUT=300;
for i in {1..10}; do
echo "erstelle ${P}$i;
mkdir ${P}$i;
sleep $TIMEOUT;
..do somewhat
done

Eventuell noch prüfen, ob das Verzeichnis erstellt werden konnte
if [ -d ${P}$i ] ...
Nur so als grobes Gerüst.
Für die bash 2.05 dann einfach {1..10} durch $(seq 1 1 10) ersetzen...
cu Wolfgang
 
Vielen Dank für die Antworten,

aber das von mir erstellte skript bleibt nach Erstellen des ersten ordners "hängen" und garnix geht mehr.

Wie gesagt, ihr habt es mit einem absoluten anfänger zui tun.

Ich brauche bitte ein "KOMPLETTES SKRIPT" für die ersten zwei Routinen ohne PARAMETER, SCHLEIFEN und ähnlichen eleganten Lösungen.
Einfach nur ein Skript mit einer netten Befehlskette, die auch wirkich durchlaufen wird.

Vielen Dank
 
Hallo
Also wir sind hier eigentlich keine Skriptfabrik. ;)
Ein wenig Eigeninitiative solltest du schon mitbringen.
Was sind denn deine Versuche?
Poste doch mal einen Auszug.
Die Fehlermeldung, die du oben ( leider ohne deine Codezeilen) gepostet hast, deutet auf einen Syntaxfehler. Ich vermute mal, dass du das Semikolon vor dem do vergessen hast.

for i in $(seq 1 1 10);do
if [ -d "/pfad/ordner$i" ]; then
echo "Ordner existiert schon!";
else
mkdir "/pfad/ordner$i";
fi ; done
cd "/pfad/ordner$i";
echo "ich gehe schlafen!";
sleep 300;
echo "bin aufgewacht";

Im Übrigen haben Schleifen nix mit elegant zu tun, sondern sind im Normalfall für sich wiederholende Prozesse die übliche Lösung.
Zwanzig mal Befehlszeilen hintereinander schreiben ist fehleranfällig und sicher allles andere als zu empfehlen.
Also lass mal sehen, was du bisher selber versucht hast.
Gruß Wolfgang
 
KlaPe schrieb:
aber das von mir erstellte skript bleibt nach Erstellen des ersten ordners "hängen" und garnix geht mehr.

*schmunzel*

hast du auch (vorausgesetzt du hast 'sleep 300' in deinem skript verwendet) 300 sekunden abgewartet, bis es wieder weitergeht? denn das skript "schläft" für 300 sek und da sieht es so aus als ob es hängen geblieben wäre *g
 
Zurück
Oben