Shell script

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Shell script

Beitrag von HelsAett » 18.06.2003 03:00:59

was ist an dieser zeile falsch

(for f in ` echo ${PATH} | awk BEGIN { RS=":" } { print }` ;
do ls -lad --full-time `find ${f} -perm +6000` ;
done) > ~/security_check
;;

die shell gibt mir als fehlermeldung
line 1: awk: command not found

awk ist installiert, die variablen sind auch alle deglariet, ich konnte den fehler bis auf dieser zeile code einschrenken.

wer kann weiterhelfen ?

gruss helsaett

Olaf Dietsche
Beiträge: 520
Registriert: 12.06.2003 23:18:50
Wohnort: Siegburg

Re: Shell script

Beitrag von Olaf Dietsche » 18.06.2003 04:19:10

HelsAett hat geschrieben:was ist an dieser zeile falsch

(for f in ` echo ${PATH} | awk BEGIN { RS=":" } { print }` ;
do ls -lad --full-time `find ${f} -perm +6000` ;
done) > ~/security_check
;;

die shell gibt mir als fehlermeldung
line 1: awk: command not found
Kann es sein daß die Fehlermeldung nicht "line 1: awk:", sondern "awk: line1:" lautet?

Falls das so ist, dann mach mal einfache Hochkomma um den Parameter für awk:

Code: Alles auswählen

awk 'BEGIN { RS=":" } { print }'

Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Beitrag von HelsAett » 18.06.2003 16:25:48

hallo olaf

die fehlermeldung nicht vertauscht habe, sie lautet schon :

line 1: awk: command not found

mit den hochkommern aber trotzdem mal ausprobiert hab, dann kommen folgende meldungen:
line 1: awk: command not found
line 1: find: command not found
line 25: ls: command not found
line 1: find: command not found
line 25: ls: command not found
line 1: find: command not found
line 25: ls: command not found

also hab ich es wieder gelassen, mit den hochkommern und bin damit wieder beim problem, wie anfangs beschrieben.

gruss helsaett

Chimerer
Beiträge: 514
Registriert: 28.01.2002 16:10:44

Beitrag von Chimerer » 18.06.2003 16:52:20

So funktioniert das Script bei mir:

Code: Alles auswählen

(for f in ` echo ${PATH} | awk 'BEGIN { RS=":" } { print }'` ;
do ls -lad --full-time `find ${f} -perm +6000` ;
done) > ~/security_check

Olaf Dietsche
Beiträge: 520
Registriert: 12.06.2003 23:18:50
Wohnort: Siegburg

Beitrag von Olaf Dietsche » 18.06.2003 19:25:39

HelsAett hat geschrieben:die fehlermeldung nicht vertauscht habe, sie lautet schon :

line 1: awk: command not found

mit den hochkommern aber trotzdem mal ausprobiert hab, dann kommen folgende meldungen:
line 1: awk: command not found
line 1: find: command not found
line 25: ls: command not found
line 1: find: command not found
line 25: ls: command not found
line 1: find: command not found
line 25: ls: command not found

also hab ich es wieder gelassen, mit den hochkommern und bin damit wieder beim problem, wie anfangs beschrieben.
Das sieht so aus als wenn bei dir einiges nicht installiert ist. Oder dein Pfad ist falsch eingestellt. Was liefert denn dieses Kommando als Ausgabe:

Code: Alles auswählen

dpkg -l '*awk*' fileutils findutils
Und was sagt:

Code: Alles auswählen

echo $PATH

Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Beitrag von HelsAett » 18.06.2003 21:43:22

dpkg -l '*awk*' fileutils findutils

gibt folgendes aus:

| Status=Not/Installes/Config-files/Unpackes/Failed-config/Half-installed
| / Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-======================-======================-=======================
un awk <none> (no description available)
ii fileutils 4.1-10 GNU file management utilities
ii findutils 4.1.7-2 utilities for files--find, xargs, an


echo $PATH

gibt aus:

/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin

"awk, ls, find sind installiert"

gruss helsaett
[/quote]

Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Beitrag von HelsAett » 18.06.2003 21:51:57

danke euch, hab noch mal bischen rumprobiert und dann schliessentlich den fehler gefunden.
typischer anfängerfehler hab, zuvor im nicht geposteten teil des scripts, eine variable deglariert die PATH hiess und die hat sich dann mit den geposteten teil des scripts nicht vertragen.

danke für eure hilfe

gruss helsaett

Olaf Dietsche
Beiträge: 520
Registriert: 12.06.2003 23:18:50
Wohnort: Siegburg

Beitrag von Olaf Dietsche » 18.06.2003 22:12:21

HelsAett hat geschrieben:dpkg -l '*awk*' fileutils findutils

gibt folgendes aus:

| Status=Not/Installes/Config-files/Unpackes/Failed-config/Half-installed
| / Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-======================-======================-=======================
un awk <none> (no description available)
Ein u in der ersten Spalte bedeutet, daß awk nicht installiert ist. Es gibt allerdings mehrere awk Pakete: awk, gawk und mawk. Einen davon mußt du installieren.

Antworten