[maillist] Frage zu bash Script(s)

Micha Holzmann (holzmann@mhnet.de)
Sun, 29 Aug 1999 12:43:02 +0200

Hallo,

ich moechte wissen in welchem Paket das Programm/Datei 'nslookup' enthalten ist.
Dazu gebe ich folgendes ein:

[kaliba] #for i in *.rpm; do rpm -qlp $i|egrep -i "nslookup" > /dev/null && echo $i; done
bind-doc-8.1.2-7.i386.rpm
bind-utils-8.1.2-7.i386.rpm

Der Bequemlichkeit halber habe ich das ganze in ein Script gepackt.

--- cut here ----
#!/bin/sh
# Script : search
# Purpose : search in RPM for a file
# Syntax : search [rpm] [string] ex: search *.rpm nslookup

for i in $*; do rpm -qlp $i|egrep -i $2 && echo $i; done
--- cut here ----

In $* stehen nun alle RPMs des aktuellen Verzeichnisses plus den String
den ich mit angegeben habe. Logischerweise bricht das Script dann ab, weil
rpm kein nslookup.rpm oeffnen kann.

Das liegt wohl an der Art wie die bash mit Joker/Wildcard umgeht. Wenn ich
ein Script starte, wird eine weitere Shellinstanz gestartet und die Variable
$* enthaelt alle RPMs plus meinen zweiten Aufrufparameter.

Was muss ich tun, um meinem (oder auch anderen) Script fuer einen Teil der
Bearbeitung die Dateinamen zu uebergeben und andererseits einen anderen
Parameter fuer den zweiten Teil der Bearbeitung?

Gruss,
Micha Holzmann

-- 
Nutze Deine Faehigkeiten, beschraenke Dich nicht auf Zustaendigkeiten.
 Key fingerprint = 7A 6A 62 1A D9 B7 49 94  37 12 60 D6 EC 35 81 87
            PGP Public-Key: send a Mail with Subject: PGP