Parameterübergabe an init skript
Hallo!
Gibt es eine Möglichkeit einem skript neben den cases eine weiteren Parameter
zu übergeben?
Der Fall Ich möchte skriptgesteuert den advskew wert von einer Gruppe von
carpinterfaces verändern. Momentan mache ich das so:
------------- snip -------------------------------------
#Liste aller carp interfaces im produktiven stage
A="carp1"
B='carp4'
C='carp5'
D='carp11'
E='carp12'
F='carp15'
G='carp19'
H='carp23'
I='carp30'
#Liste aller carp interfaces im testing stage
testA='carp0 '
testB='carp2 '
testC='carp3 '
testD='carp10'
testE='carp14'
testF='carp17'
testG='carp20'
testH='carp29'
testI='carp34'
#Liste aller carp interfaces im development stage
devA='carp0 '
devB='carp7 '
devC='carp8 '
devD='carp9'
devE='carp13'
devF='carp16'
devG='carp35'
case "$1" in
production)
for i in $A $B $C $D $E $F $G $H $I;do
ifconfig "$i"
done
echo "Dies ist der aktuelle Stand im produktiven stage!"
echo "Wollen Sie wirklich den advskew fuer den produktiven
stage aendern? (y/n)"
read Z
echo "Geben Sie den neuen Wert für den advskew ein:"
read X
if [ "$Z"="y" ] ; then
for i in $A $B $C $D $E $F $G $H $I;do
ifconfig "$i" advskew "$X"
done
tail /var/log/messages
else
echo "Carpzustand wird nicht veraendert!"
fi
exit 0
;;
test)
for i in $testA $testB $testC $testD $testE $testF $testG
$testH $testI;do
ifconfig "$i"
done
echo "Dies ist der aktuelle Stand im testing stage!"
echo "Wollen Sie wirklich den advskew fuer den testing stage
aendern? (y/n)"
read Z
echo "Geben Sie den neuen Wert für den advskew ein:"
read X
if [ "$Z"="y" ] ; then
for i in $testA $testB $testC $testD $testE $testF
$testG $testH $testI;do
ifconfig "$i" advskew "$X"
done
tail /var/log/messages
else
echo "Carpzustand wird nicht veraendert!"
fi
exit 0
;;
dev)
for i in $devA $devB $devC $devD $devE $devF $devG $devH
$devI;do
ifconfig "$i"
done
echo "Dies ist der aktuelle Stand im development stage!"
echo "Wollen Sie wirklich den advskew fuer den development
stage aendern? (y/n)"
read Z
echo "Geben Sie den neuen Wert für den advskew ein:"
read X
if [ "$Z"="y" ] ; then
for i in $devA $devB $devC $devD $devE $devF $devG
$devH $devI;do
ifconfig "$i" advskew "$X"
done
tail /var/log/messages
else
echo "Carpzustand wird nicht veraendert!"
fi
exit 0
;;
status)
echo "Welchen stage moechten Sie sich anschauen?
(production|test|dev)"
read Y
if [ "$Y" = "production" ]; then
for i in $A $B $C $D $E $F $G $H $I;do
ifconfig "$i"
done
elif [ "$Y" = "test" ]; then
for i in $testA $testB $testC $testD $testE $testF
$testG $testH $testI;do
ifconfig "$i"
done
elif [ "$Y" = "dev" ]; then
for i in $devA $devB $devC $devD $devE $devF $devG
$devH $devI;do
ifconfig "$i"
done
fi
exit 0
;;
*)
echo "Usage production|test|dev"
;;
esac
------------------------ snap ------------------------------------------------
Anstelle der zwei read Abfragen hintereinander, möchte ich das Skript gerne
wie folgt aufrufen, wenn es denn geht:
switch-carp-priority.sh production 5
Also <skriptname> <case> <parameter>. Ist das möglich?
Gruß
Alex
Reply to: