Einfaches Loop-Script für Bash

Man soll kaum glauben wie oft man als Admin immer wieder manuell die selben Befehle aufrufen muss, weil sich Teile ändern.

Nach dem Motto "Nur ein fauler Admin ist ein guter Admin" gibts dafür von mir ein kleines Script, was nur eins tut: Einen Befehl solange ausführen bis ihr in mit Strg+C abbrecht.

Eingesetzt habe ich es bis jetzt vor allem im massenhaften Abfragen mit Befehlen wie nslookup oder useradd, die einfach kaum mehr als eine Halbautomatisierung zu lassen.

Hier also das Skript:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash

usage() {
    echo -e "Methodlooper. Usage:\n"
    echo "looper COMMAND"
}

if [ -z "$1" ]
then
    usage
    exit 1
fi

LOOPER_COMMAND="$1"

while [ 1 ]
do
    echo -n "${1} "
    read ARGS 
    $LOOPER_COMMAND $ARGS
done

UPDATE #1:

Um das ganze etwas Nutzerfreundlicher zu gestalten habe ich den Code noch einmal überarbeitet, sodass er jetzt eine eigene History anlegt - und zwar für jeden Befehl den ihr looped eine seperate. Das ganze sieht jetzt so aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash

LOOPER_DIR=~/.looper

if [ ! -d $LOOPER_DIR ]
then
    mkdir $LOOPER_DIR
fi

usage() {
    echo -e "Methodlooper. Usage:\n"
    echo "looper COMMAND"
}

if [ -z "$1" ]
then
    usage
    exit 1
fi

LOOPER_COMMAND=$1
LOOPER_HISTORY=${LOOPER_DIR}/history_${LOOPER_COMMAND}

if [ ! -f $LOOPER_HISTORY ]
then
    touch $LOOPER_HISTORY
fi

history -r $LOOPER_HISTORY

while true
do
    echo -n "${1} "
    read -e ARGS
    history -s "$ARGS"
    history -w $LOOPER_HISTORY
    $LOOPER_COMMAND $ARGS
done;





Proudly powered by Microsoft IIS, Visual Basic .NET and DHTML. NOT.
Copyright © izzy
License Info