← Back to team overview

sslug-teknik team mailing list archive

Re: Bash-mystik - eller er det xview der driller ?

 

Jørgen Heesche wrote:
Jan Holst Jensen wrote:

skip


Det kan godt være at det er konsistent opførsel, men
det er altså dybt ulogisk. Er der nogen der kan give
en logisk sammenhængende forklaring på bash's opførsel
? Eller er svaret bare: Skriv alle dine scripts i
Python :-) ?

Det en helt konsistent og 100% logisk opførsel, som virker på samme måde i alle
scriptsprog, også Phyton.


Det er vist på tide at tydeliggøre brugen af bagvendt skråstreg (back slash). I kildeprogramtekster (Shell-scripts, C, PHP, Python, osv.) skal tekststrenge markeres med anførselstegn. Disse anførselstegn indgår ikke i teksten. Hvis tekststrengen reelt skal indeholde et anførselstegn, bruges en back slash.
Eks. "Dette er en tekst med anførselselstegn \" inkluderet".
Hvis \ udelades bliver teksten spoleret.
Så er der filer med mellemrun i navnet, f.eks. 01 januar.jpg
Et sådant filnavn skal, for at opfattes som ét navn, markeres med anførselstegn: ls "01 januar.jpg". Hvis man skriver ls \"01 januar.jpg\" betyder det at filnavnet stadig opfattes som to navne: "01 og januar.jpg". Konstruktionen ls "\"01 januar.jpg\"", resulterer i et filnavn med anførselstegn omkring, og den fil eksisterer ikke.


Problemet med mellemrum i filnavne kan også løses på en anden måde ved hjælp af \
I filnavnet 01 janunar.jpg indsættes en \ foran mellemrummet,
01\ januar.jpg. Så vil mellemrummet indgå i navnet, og ikke, som normalt i shell, virke som skilletegn.
Metoden kan dog kun bruges manuelt for én fil ad gangen.


--
Med venlig hilsen

Jørgen Heesche
mailto:heesche@xxxxxxxxxxx
Registered Linux User #401007


Follow ups

References