read(1p): Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '== NAMN == '''read''' — läs från standard in till skalsvariabler == SYNOPSIS == <pre> read [-r] var... </pre> == BESKRIVNING == Kommandot '''read''' läser en logisk rad från standard in och placerar den i en eller flera skalvariabler. Som standard, om inte flaggan '''-r''' används, tolkas omvänt snedstreck (\) som escape-tecken. Ett omvänt snedstreck före tecken (utom nyrad) behåller tecknets bokstavliga värde. Före nyrad används det för radfortsättnin...')
 
 
Rad 122: Rad 122:


== SE ÄVEN ==
== SE ÄVEN ==
[[Chapter 2 Shell Command Language]], [[chmod(1p)]]
[[chmod(1p)]]


POSIX.1-2017, Kapitel 8, Miljövariabler, Sektion 12.2, Riktlinjer för kommandosyntax.
POSIX.1-2017, Kapitel 8, Miljövariabler, Sektion 12.2, Riktlinjer för kommandosyntax.

Nuvarande version från 29 augusti 2025 kl. 18.42

NAMN

read — läs från standard in till skalsvariabler

SYNOPSIS

read [-r] var...

BESKRIVNING

Kommandot read läser en logisk rad från standard in och placerar den i en eller flera skalvariabler.

Som standard, om inte flaggan -r används, tolkas omvänt snedstreck (\) som escape-tecken. Ett omvänt snedstreck före tecken (utom nyrad) behåller tecknets bokstavliga värde. Före nyrad används det för radfortsättning. Dessa tas bort innan fältuppdelning görs. Övriga omärkta \ tas bort efter fältuppdelning.

Om standard in är en terminal och skalet är interaktivt visas prompt för fortsättningsrad vid rad som slutar med \. Nyrad, såvida inte flaggan -r används.

Den avslutande nyraden (om någon) tas bort. Sedan delas innehållet upp i fält enligt skalets regler (fältseparering). Första fältet går till första variabeln, nästa till nästa, osv. Om färre fält än variabler anges sätts resterande variabler till tom sträng. Om fler fält än variabler finns placeras resterande i sista variabeln, inklusive avgränsare, förutom att avslutande IFS-mellanrum ignoreras.

Variabler som anges påverkar det aktuella skalmiljön. Om read körs i subshell eller separat miljö påverkas inte anropsskalets variabler.

FLAGGOR

Flagga Beskrivning
-r Tolka inte \ som escape-tecken, behåll dem som indata.

OPERANDER

Operand Beskrivning
var Namn på en existerande eller ny skalvariabel.

STDIN

Standard in ska vara en textfil.

INPUT FILER

Inga.

MILJÖVARIABLER

Variabel Påverkan
IFS Anger fältavskiljare för uppdelning.
LANG Standardvärde för internationaliseringsvariabler om de inte är satta.
LC_ALL Överskuggar alla andra internationaliseringsvariabler om satt.
LC_CTYPE Styr teckentolkning (enbyte vs flerbyte).
LC_MESSAGES Lokal för diagnostiska meddelanden.
NLSPATH Plats för meddelandekataloger (för LC_MESSAGES).
PS2 Promptsträng som visas vid fortsättningsrad när \ nyrad lästs och flaggan -r inte används.

ASYNKRONA HÄNDELSER

Standard.

STDOUT

Ej använd.

STDERR

Används för diagnostiska meddelanden och prompts.

OUTPUT FILER

Inga.

UTFÖRLIG BESKRIVNING

Ingen.

AVSLUTNINGSSTATUS

Kod Beskrivning
0 Lyckad körning.
>0 Slut på fil eller fel inträffade.

FELKONSEKVENSER

Standard.

Följande sektioner är informativa.

ANVÄNDNING

Flaggan -r finns för att ersätta det äldre kommandot line som inte ingår i POSIX.1-2008.

EXEMPEL

while read -r xx yy
do
    printf "%s %s\n$yy$xx"
done < input_file

Flyttar första fältet på varje rad till slutet.

RATIONALE

read har historiskt varit en skal-inbyggd. Den separerades som egen för bättre beskrivning i POSIX. Eftersom den påverkar aktuell skalmiljö är det i praktiken alltid en inbyggd. Körs den i subshell påverkas inte variabler i anropsskalet.

Notera att om sista raden i indata slutar med \ nyrad, kan texten inte avslutas med nyrad efter fortsättningsbearbetning, även om standard in är en textfil.

FRAMTIDA RIKTNINGAR

Inga.

SE ÄVEN

chmod(1p)

POSIX.1-2017, Kapitel 8, Miljövariabler, Sektion 12.2, Riktlinjer för kommandosyntax.

COPYRIGHT

Delar av denna text återges från IEEE Std 1003.1-2017, The Open Group Base Specifications Issue 7, 2018 Edition. Copyright (C) 2018 IEEE och The Open Group.


Sidslut

Orginalhemsidan på Engelska : https://www.man7.org/linux/man-pages/man1/read.1p.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.