Toon posts:

Executable bestanden vinden [Shell]

Pagina: 1
Acties:
  • 31 views sinds 30-01-2008

Verwijderd

Topicstarter
Jongens, ik ben momenteel opdrachten voor school aan het maken. Het is de bedoeling dat ik dmv een shellscript een map kan benaderen om vervolgens alle executable bestanden weer te geven. Ik ben tot zover gekomen en hier houdt mijn kennis eigenlijk een beetje op. Iemand enig idee hoe ik dit verder kan oplossen?

Als ik het script uitvoer en ik geef een mapnaam (waarin ik zeker weet dat die een executable bestasnd bevat) als variable mee geef, geeft die gewoon aan dat hij niet de bestanden kan vinden. echo "Er zijn geen executables gevonden!" wordt dus uitgevoerd.
#!/bin/sh
if test -f $1
then echo "Voer wat in!"
else
for map in $*
do
if ! test -d $map
then
echo "Dit is geen geldige mapnaam"
fi
done

for i in `ls $1`
do
if test -x $i
then
echo "$i is een executable"
else
echo "Er zijn geen executables gevonden!"
exit 1
fi
done
fi

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 14:32

Creepy

Tactical Espionage Splatterer

Vreemd is het niet want je checkt of 1 entry in die directory executable is of niet. Als dat niet het geval is wordt er geroepen dat er geen executables zijn gevonden en stop je het script. Een eventuele volgende entry check je niet meer. De huidige directory (.) en de parent directory (..) zijn ook entries.

Kortom: debuggen dus :) We gaan er hier vanuit dat je dat in eerste instantie ook doet en dat je dat ook in je startpost aangeeft. Aangezien dit ontbreekt en je er met m'n tip wel uit moet kunnen komen gaat deze op slot. Als je voor een volgende keer Programming Beleid eens door wilt lezen (en dan met name Programming Beleid - De Quickstart) dan weet je wat we hier van je verwachten voordat je een topic opent :)

[ Voor 4% gewijzigd door Creepy op 06-02-2007 14:50 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Even uit het hoofd (geen shell beschikbaar hierzo)
Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh

if [ -z $1]
then
    echo "Usage: $0 <directory>"
    exit 1
fi

basedir=$1

for file in $basedir
do
    if [ -x "$file" ]
    then
        echo "$file is an executable"
    fi
done


edit: En wat Creepy zegt natuurlijk

[ Voor 6% gewijzigd door MTWZZ op 06-02-2007 14:51 ]

Nu met Land Rover Series 3 en Defender 90


Verwijderd

Topicstarter
Niet op slot doeeeeeeeen :'(

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 14:32

Creepy

Tactical Espionage Splatterer

Whoops. Niet direct gesloten. Ondanks je vraag neem ik aan dat je wel begrijpt dat deze toch dicht gaat.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.