Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Bash: Fout met IFS opgelost. Maar waarom fout?  (gelezen 2487 keer)

Offline bart85

  • Lid
Bash: Fout met IFS opgelost. Maar waarom fout?
« Gepost op: 2022/12/29, 17:55:42 »
In mijn script word een tekstbestand uitgelezen. Het heeft kolommen gescheiden met een tab. Ik had IFS ingesteld met:
IFS='\t'
Verbeterd met:
IFS=$'\t'

Waarvoor is dit dollar-teken nodig?
Je leert maar mooi over weg gaan met de commandline. Geen grafische toepassingen voor systeembeheer.
You can never make a system 100% secure unless you unplug the machine from all networks, turn it off, lock it in a safe, smother it in concrete and never use it.

Offline Bloom

  • Lid
Re: Bash: Fout met IFS opgelost. Maar waarom fout?
« Reactie #1 Gepost op: 2022/12/29, 21:44:48 »
Zogenaamd "escaped characters" (een backslash gevolgd door een speciaal karakter) moeten geïnterpreteerd worden.
Als je '\t' opgeeft in Bash, dan is dat een backslash en een t, het wordt dus niet vertaald naar tab, wat je eigenlijk wil.
Daarom moet je dat dollarteken opgeven: $'iets' wordt vertaald naar "iets" met escaped characters geïnterpreteerd en dus een tab of een newline effectief in de string ingevuld.

Offline bart85

  • Lid
Re: Bash: Fout met IFS opgelost. Maar waarom fout?
« Reactie #2 Gepost op: 2022/12/30, 08:38:28 »
Dankjewel voor de uitleg.
Je leert maar mooi over weg gaan met de commandline. Geen grafische toepassingen voor systeembeheer.
You can never make a system 100% secure unless you unplug the machine from all networks, turn it off, lock it in a safe, smother it in concrete and never use it.