[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: