installscript für pkgsrc

Software besorgen und anwenden
Post Reply
Message
Author
User avatar
!r0nY
Posts: 74
Joined: 20. Aug 2005 13:51

installscript für pkgsrc

#1 Post 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

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#2 Post 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.
When all else fails, read the instructions .

User avatar
!r0nY
Posts: 74
Joined: 20. Aug 2005 13:51

#3 Post 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...

H-A

#4 Post by H-A »

Wiederholung:
Darin wird die Anzahl der übergebenen Parameter gespeichert.

Steht aber doch schon im Text.

klopskuchen
prolinux-forum-admin
Posts: 1444
Joined: 26. Jun 2004 21:18
Contact:

#5 Post 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
When all else fails, read the instructions .

Post Reply