Scriptje onder bash

Pagina: 1
Acties:

  • MacLinux
  • Registratie: Mei 2002
  • Laatst online: 27-03-2024
Systeem:

RedHat 9.0
Kernel 2.4
Toshiba Tecra 8100 Laptop
Pentium 3 / 512 Mb

Ik ben bezig me te verdiepen in het schrijven van simpele shell scriptjes.
Een prachtig boek genaamd: "Het Linux Programmeerboek" naast me.
Wat kan er misgaan? Helemaal niks denk je.
Maar hier snap ik helemaal niets van.

Het volgende scriptje gemaakt:

#!/bin/sh

# eerste.sh
# Dit bestand zoekt in alle bestanden in de huidig
# directory naar de string POSIX en drukt die bestanden
# af via de standaard output.

for file in *
do
if grep -q POSIX $file
then
more $file
fi
done

exit 0

Daarna:
chmod +x ./eerste.sh

Als ik dit nu wil runnen met

./eerste.sh

geeft de shell de listing van het bestand.

/bin/sh eerste.sh

geeft hetzelfde effect.

Als ik dit bestandje in mijn home-directory zet doet hij het dus gewoon.
Het pad waar ik het bestandje staat in PATH gezet maar dat mocht ook niet baten.

Wie het weet mag het zeggen.

Verwijderd

Het ding geeft inderdaad zijn eigen listing omdat het bestand ook "POSIX" bevat.

Als je het in /usr/bin plaatst, of je voegt het to aan de PATH environment variabele, dan moet het gewoon werken. Hoe heb jij dat gedaan?
Het kan bijvoorbeeld tijdelijk met:
export PATH=$PATH:/dir/met/script

[ Voor 3% gewijzigd door Verwijderd op 21-02-2004 12:28 ]


Verwijderd

Kortom, zet je script in /usr/local/bin, dat is typisch een directory waar je dit soort dingen inzet.

Hoef je ook niets aan je pad-variabele te wijzigen.

  • MacLinux
  • Registratie: Mei 2002
  • Laatst online: 27-03-2024
Wat een ... ben ik.
Hij doet het dus gewoon, want dat is natuurlijk het enige bestand in die directory dat dit woord bevat.
Ik heb het bestand .bash_profile aangepast en uitgelogd en aangelogd.
Maar ik ga dat voortaan maar in /usr/local/bin plaatsen met een link naar de directory waar het staat. Moet volgens mij kunnen.

  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Je kan ook een directory bin in je homedir maken en $HOME/bin toevoegen aan je path. Dan hoef je niet steeds als root een symlinkje te maken.

"He took a duck in the face at two hundred and fifty knots."