petterg Skrevet 1. oktober 2004 Skrevet 1. oktober 2004 (endret) Har et script som utfører en find kommando. Filene som blir funnet lagres i en variabel - men det gjør ikke linjeskiftene i resultatet fra find. Hvordan kan jeg ta vare på linjeskiftene? find # gir: # fil1 # fil2 # fil3 #... result=`find` echo ${result} # gir: # fil1 fil2 fil3 Jeg ønsker altså at "echo ${result}" skal gi samme output som "find" med tanke på linjeskift. Endret 6. oktober 2004 av petterg
Xizor Skrevet 2. oktober 2004 Skrevet 2. oktober 2004 Håper dette hjelper #!/bin/bash r=`find` for c in $r; do echo $c done - Xizor
petterg Skrevet 3. oktober 2004 Forfatter Skrevet 3. oktober 2004 Ikke hvis det er "rare" tegn i filnavnene. Alle \ (escape) ser ut til å forsvinne når en streng lagres i en variabel. Dvs selv \[space] blir til bare [space].
Ganske Skrevet 5. oktober 2004 Skrevet 5. oktober 2004 Det kan henda Bash-variabelen $IFS (Internal Field Separator) har noko med dette å gjera. Dersom du set $IFS til ein tom streng før echo ${result}, vil du få med linjeskift slik du ønskjer. (Usikker på spesialteikn.) Det er nok ein god idé å ta vare på verdien til $IFS og gjenoppretta han etterpå. Eg trur Bash brukar denne variabelen til ganske mykje internt.
petterg Skrevet 6. oktober 2004 Forfatter Skrevet 6. oktober 2004 Det kan henda Bash-variabelen $IFS (Internal Field Separator) har noko med dette å gjera. Dersom du set $IFS til ein tom streng før echo ${result}, vil du få med linjeskift slik du ønskjer. (Usikker på spesialteikn.) Det er nok ein god idé å ta vare på verdien til $IFS og gjenoppretta han etterpå. Eg trur Bash brukar denne variabelen til ganske mykje internt. Fantastisk! Mange TAKK!
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå