Page 1 of 1

installscript für pkgsrc

Posted: 13. Jun 2006 11:12
by !r0nY
hallo,

ich finde es bei pkgsrc sehr umständlich, das man immer in den ordner der software wechseln muss, die man sich installieren will, daher habe ich ein script geschrieben, was dies vereinfachen soll. habe dazu aber noch eine frage.

Code: Select all

#!/bin/sh

read name

cd `find /usr/pkgsrc -type d -name $name`

bmake
bmake install
bmake clean
bmake clean-depends

unset name
mich stört, das ich das script mit sh aufrufen muss...
was muss ich tun um das script ohne sh aufrufen zukönnen?

mich stört, das ich erst nach aufruf des scripts den namen der software eingeben kann, die ich installieren möchte...
was muss ich tun, das ich den namen der software direkt hinter den aufruf des scripts schreiben kann?

in der endkonsequenz soll das script so funktionieren, dass ich in der command-line
z.b. pkg_install nano
eingeben kann und das durch diesen aufruf nano installiert wird

ich hoffe ihr könnt mir helfen... mir würde auch ein link reichen, wo ich mich ein bischen über script programmierung belesen kann

danke

Posted: 13. Jun 2006 11:56
by klopskuchen
was muss ich tun um das script ohne sh aufrufen zukönnen?
Die Datei ausführbar machen: chmod +x dein_script
was muss ich tun, das ich den namen der software direkt hinter den aufruf des scripts schreiben kann?
Beispiel: Der Aufruf lautet ./dein_script li la lo
Dann sieht das innerhalb des Scriptes so aus:
$0 ist der Scriptname (weil erster String des Aufrufs)
$1 enthält den String "li" (zweiter String im Aufruf)
$2 enthält "la"
und so weiter
($# enthält die Anzahl der Argumente, in diesem Fall 3(ab der 0 gezählt))

Code: Select all

#!/bin/sh
 
if [ $# -lt 1 ]; then
     echo "Nuescht eingegeben, besoffen? ;-)"
     exit 1
fi
 
cd `find /usr/pkgsrc -type d -name $1`
bmake
bmake install
bmake clean
bmake clean-depends

exit 0;

MfG, Klopskuchen

edit
Das "exit 1" im if-Zweig hab ich noch nachträglich reingeschmuggelt, vorhin vergessen.

Posted: 13. Jun 2006 19:31
by !r0nY
danke, du hast mir sehr weitergeholfen...
aber wofür ist denn diese anweisung genau??

Code: Select all

if [ $# -lt 1 ]; then
     echo "Nuescht eingegeben, besoffen? ;-)"
     exit 1
fi 
und was bedeutet das exit 0 am ende...

Posted: 13. Jun 2006 22:52
by H-A
Wiederholung:
Darin wird die Anzahl der übergebenen Parameter gespeichert.

Steht aber doch schon im Text.

Posted: 13. Jun 2006 22:53
by klopskuchen

Code: Select all

# wenn [ "Anzahl Kommandozeilenstrings" -kleiner_als 1 ]; dann
if [ $# -lt 1 ]; then
# Schreibe auf Bildschirem "Nuescht ...."
     echo "Nuescht eingegeben, besoffen? ;-)"
# Beende das Script mit Wert "FALSE"
     exit 1
fi
Das "exit 0" am Ende heiß "Beende und gib 0 an den Aufrufer zurück", also Exitstatus "TRUE".


MfG, Klopskuchen