[Bash] Bash expansion voorkomen?

Pagina: 1
Acties:

  • DieterVDW
  • Registratie: Juli 2002
  • Laatst online: 12-02-2017
Hallo,

Ik heb een scriptje dat een regel inleest van een file en deze dan weer uitspuwt.
Als deze file echter een sterretje of een ander 'speciaal' bash karakter bevat, dan wordt dit door bash expanded. Een sterretje wordt bvb. een lijst van de files in de werkdir.
Ik heb er echt geen enkel idee van hoe ik dit kan voorkomen ...
Weet iemand hoe dit kan?

code:
1
2
3
4
5
6
7
8
divdewal@hb1738:~$ cat goed
no problem
divdewal@hb1738:~$ cat slecht
probleem! *
divdewal@hb1738:~$ cat goed | while read LINE ; do echo $LINE ; done
no problem
divdewal@hb1738:~$ cat slecht | while read LINE ; do echo $LINE ; done
probleem! file1 file2 file3 file4

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 10:03

Maasluip

Frontpage Admin

Kabbelend watertje

$LINE tussen " " zetten.

Signatures zijn voor boomers.


  • DieterVDW
  • Registratie: Juli 2002
  • Laatst online: 12-02-2017
Nope ... Krijg nog steeds hetzelfde?

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 10:03

Maasluip

Frontpage Admin

Kabbelend watertje

Hmm. Bij mij werkt dat wel.
code:
1
2
3
4
5
6
7
8
9
10
11
12
bash-2.05$ uname -sr
SunOS 5.9
bash-2.05$ cat goed
no problem
bash-2.05$ cat slecht
probleem! *
bash-2.05$ cat goed | while read LINE ; do echo $LINE ; done
no problem
bash-2.05$ cat slecht | while read LINE ; do echo $LINE ; done
probleem! goed slecht
bash-2.05$ cat slecht | while read LINE ; do echo "$LINE" ; done
probleem! *

Ik geef toe: bash is een beetje een oude versie, maar kan me toch niet indenken dat dat gedrag veranderd is?

Signatures zijn voor boomers.


  • DieterVDW
  • Registratie: Juli 2002
  • Laatst online: 12-02-2017
Maasluip schreef op donderdag 09 oktober 2008 @ 13:20:
Ik geef toe: bash is een beetje een oude versie, maar kan me toch niet indenken dat dat gedrag veranderd is?
:X Ik had de eerste LINE tussen quotes gezet ... |:(
Werkt nu wel ... Hmm zo makkelijk!
Ik ben nochtans geen n00b qua scripten, maar zo'n dingen zit ik soms toch nog wel tijdje op vast ...
Waar vind je zoiets eigenlijk? De Advanced Bash Scripting Guide is zowat mijn referentie...
"man bash" daar vind ik persoonlijk nooit iets in ...

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Andere optie is "set -f" bovenaan in je script.

Daarmee zet je filename expension uit.

We are pentium of borg. Division is futile. You will be approximated.


  • burne
  • Registratie: Maart 2000
  • Niet online

burne

Mine! Waah!

Vaak is het gewoon een kwestie van de juiste zoekwoorden: http://www.google.com/search?q=bash+prevent+globbing

I don't like facts. They have a liberal bias.


  • Maasluip
  • Registratie: April 2002
  • Laatst online: 10:03

Maasluip

Frontpage Admin

Kabbelend watertje

DieterVDW schreef op donderdag 09 oktober 2008 @ 16:27:
[...]


:X Ik had de eerste LINE tussen quotes gezet ... |:(
/me schopt fluitend een steentje weg

Maar als je niet zo'n scripting guru bent, ga dan maar eens het verschil tussen ` ' en " bekijken ;)
Moet je wel weten wat globbing is...

Signatures zijn voor boomers.


  • DieterVDW
  • Registratie: Juli 2002
  • Laatst online: 12-02-2017
Maasluip schreef op donderdag 09 oktober 2008 @ 19:50:
[...]
Maar als je niet zo'n scripting guru bent, ga dan maar eens het verschil tussen ` ' en " bekijken ;)
Dan bedoel je backquotes (degene die de inhoud uitvoeren) en gewone quotes?
Backquotes gebruik ik wel regelmatig ja, wel zo handig.
Moet je wel weten wat globbing is...
Idd, had er zelf nog nooit van gehoord ... Bash expansion was het beste wat ik kon verzinnen.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Globbing wordt genoemd (nouja, allerlei opties die beginnen of eindigen met glob) onder het kopje EXPANSION in de manual :)
Pagina: 1