Hier noch ein Script wie man die Konvertierung eines Strings in ein Array eleganter in einer while Schleife gestalten kann. Dabei ist wieder Jeder Buchstabe des Strings ein Element des Arrays
#!/bin/bash
#convert_to_aray
STRING=abc
i=${#STRING} #counts the length of the string
while [ $i -ge 0 ]
do
ARRAY[$i]=${STRING:$i:1} #assign the i-th letter of the STRING to be the i-th element of the array
i=$(($i-1)) #decrements by 1
done
#notice: the loop here is backwarts lets see how a forward loop runs
j=0
while [ $j -le $i ]
do
ARRAY[$j]=${STRING:$j:1}
$j=$(($j+1)) increments by 1
done
for a in ${ARRAY[@]}
do
echo $a
done
Und die Ausgabe sollte so aus sehen.
linux@user~> sh convert_to_array
a
b
c
Freunde
Dienstag, 30. Juni 2009
Montag, 29. Juni 2009
Verblödung 2.0 oder die Vermüllung des Internets
Endlich ist es soweit. Das Internet ist schöner und interaktiver geworden. Nun kann auch der letzte Depp seinen Unsinn in die Welt hinnausschreien.
Ob man nun die Welt wissen lässt, dass man gerade auf Toilette war, nachdem man ordentlich chinesich gespeist hat oder bei Facebook allgemein verkündet, dass man jetzt wieder da ist. Der Informationsmüll im Netz steigt täglich an. Sachen die keiner wissen wollte und nach die niemand gefragt hat, tauchen plötzlich auf und hängen wohl auf ewig im Cache von google fest, so dass auch noch unsere Nachwelt erfahren wird, dass ich bei facebook ein profil habe, bei opensuse mit entwickle und heute um 9 uhr 42 vor meiner Tür der Müll ausgeleert worden ist. Gott sei dank. Mein Geist wird ewig im Cache von Google weiter leben.
Das Internet ist nicht besser geworden. Es ist bescheuerter geworden. Suchte man früher nach einem Begriff wie Afrika um wirklich Informationen darüber zu erhalten, so bekomme ich bei Google bestenfalls als ersten Eintrag eine Aufforderung jetzt sofort zu buchen und zu sparen. Unter Seitenweise links, die alle auf die gleiche Seite, nämlich wikipedia verweisen, findet man dann Seitenweise Reiseangebote. Eine Seite die in Afrika gehostet ist, lässt sich auch nach der zehnten Ergebnisseite nicht finden.
Ach war das noch schön, als kaum jemand überhaupt wußte was Internet überhaupt ist und wie man google schreibt.
Ob man nun die Welt wissen lässt, dass man gerade auf Toilette war, nachdem man ordentlich chinesich gespeist hat oder bei Facebook allgemein verkündet, dass man jetzt wieder da ist. Der Informationsmüll im Netz steigt täglich an. Sachen die keiner wissen wollte und nach die niemand gefragt hat, tauchen plötzlich auf und hängen wohl auf ewig im Cache von google fest, so dass auch noch unsere Nachwelt erfahren wird, dass ich bei facebook ein profil habe, bei opensuse mit entwickle und heute um 9 uhr 42 vor meiner Tür der Müll ausgeleert worden ist. Gott sei dank. Mein Geist wird ewig im Cache von Google weiter leben.
Das Internet ist nicht besser geworden. Es ist bescheuerter geworden. Suchte man früher nach einem Begriff wie Afrika um wirklich Informationen darüber zu erhalten, so bekomme ich bei Google bestenfalls als ersten Eintrag eine Aufforderung jetzt sofort zu buchen und zu sparen. Unter Seitenweise links, die alle auf die gleiche Seite, nämlich wikipedia verweisen, findet man dann Seitenweise Reiseangebote. Eine Seite die in Afrika gehostet ist, lässt sich auch nach der zehnten Ergebnisseite nicht finden.
Ach war das noch schön, als kaum jemand überhaupt wußte was Internet überhaupt ist und wie man google schreibt.
Bashhackers next part ;)
Dummerweise nimmt die Umgebungsvariable $OPTARG keine Arraydeklartation an. Will man beispielsweise eine Option implementieren, die mehrere Argumente haben soll steht man ziemlich blöde da.
Die Lösung:
Die Argumente als Buchstabenkürzel übergeben und dann den Sting in ein Array umwandeln, wobei jeder Buchstabe als Elemente des Arrays behandelt wird:
Beispielcode:
#!/bin/bash
#script example
#first init of variables
WITH_FEATURE=
option_w()
{
W_F=$OPTARG
#3 possible arguments ASC
WITH_FEATURE[0]=${W_F:0:1}
WITH_FEATURE[1]=${W_F:1:1}
WITH_FEATURE[2]=${W_F:2:1}
}
while getopts w: flags
do
case $flags in
w) option_w
;;
\?) # a help option is here
esac
done
shift `expr $OPTIND - 1`
for i in ${WITH_FEATURE[@]}
do
case $i in
A) #do action a
C) # do action b
S) #do action c
esac
done
exit 0
Nachteil: Funktioniert nur wenn die möglichen Optionen vorher bekannt und überschaubar sind. für den Fall das zum Beispiel beliebige Verzeichnisse als Argument übergeben werden, muss man sich was anderes einfallen lassen.
Die Lösung:
Die Argumente als Buchstabenkürzel übergeben und dann den Sting in ein Array umwandeln, wobei jeder Buchstabe als Elemente des Arrays behandelt wird:
Beispielcode:
#!/bin/bash
#script example
#first init of variables
WITH_FEATURE=
option_w()
{
W_F=$OPTARG
#3 possible arguments ASC
WITH_FEATURE[0]=${W_F:0:1}
WITH_FEATURE[1]=${W_F:1:1}
WITH_FEATURE[2]=${W_F:2:1}
}
while getopts w: flags
do
case $flags in
w) option_w
;;
\?) # a help option is here
esac
done
shift `expr $OPTIND - 1`
for i in ${WITH_FEATURE[@]}
do
case $i in
A) #do action a
C) # do action b
S) #do action c
esac
done
exit 0
Nachteil: Funktioniert nur wenn die möglichen Optionen vorher bekannt und überschaubar sind. für den Fall das zum Beispiel beliebige Verzeichnisse als Argument übergeben werden, muss man sich was anderes einfallen lassen.
Donnerstag, 25. Juni 2009
Die Internetausdrucker- und Wiedereinscanner haben endlich wieder zugeschlagen
Endlich! Unseren Internetausdruckern wird nie langweilig.
Erst Schäuble mit seinem Stasi 2.0 Maßnnahmen und seinen völlig unsinnigen Gesetzen zur Vorratsdatenspeicherung und zur Onlineüberwachung mittels Bundestrojaners.
Endlich! Nachdem uns das Zensursula die lang ersehnte und nie gewünschte chinesische gummi Internetmauer gebracht hat, schlägt nur eine Woche eine neue Maßnahme ein. Internet-Entzug für Filesharer. Ja lest es selbst hier:
http://www.heise.de/newsticker/Internetsperren-gegen-Urheberrechtsverletzer-auch-fuer-Deutschland-Update--/meldung/141084
Verwundert irgendwie nicht, dass nun endlich eine Woche später nach Verabschiedung des Gesetzesvorschlag zur Zensur des Internets für völlig vollverblödete Windowsnoobs, begonnen wird, darüber öffentlich nachzudenken, gegen "Piraten" vorzugehen.
Erst Schäuble mit seinem Stasi 2.0 Maßnnahmen und seinen völlig unsinnigen Gesetzen zur Vorratsdatenspeicherung und zur Onlineüberwachung mittels Bundestrojaners.
Endlich! Nachdem uns das Zensursula die lang ersehnte und nie gewünschte chinesische gummi Internetmauer gebracht hat, schlägt nur eine Woche eine neue Maßnahme ein. Internet-Entzug für Filesharer. Ja lest es selbst hier:
http://www.heise.de/newsticker/Internetsperren-gegen-Urheberrechtsverletzer-auch-fuer-Deutschland-Update--/meldung/141084
Verwundert irgendwie nicht, dass nun endlich eine Woche später nach Verabschiedung des Gesetzesvorschlag zur Zensur des Internets für völlig vollverblödete Windowsnoobs, begonnen wird, darüber öffentlich nachzudenken, gegen "Piraten" vorzugehen.
Abonnieren
Posts (Atom)