break(1p): Skillnad mellan sidversioner

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök
(Skapade sidan med '= Sidslut = Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/break.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/ <BR><BR>Tack till [https://Pc-service.se PC Service] som har sponsrat [https://www.linux.se Linux.se] med webbhotell. Kategori:Linuxmanual grupp 1 Kategori:Linuxmanual')
 
Ingen redigeringssammanfattning
Rad 1: Rad 1:
= break(1P) =
== PROLOG ==
Denna manualsida är en del av POSIX Programmer's Manual.
Linux-implementationen av detta gränssnitt kan skilja sig
(se motsvarande Linux-manualsida för detaljer om Linux-beteende),
eller så kanske gränssnittet inte är implementerat på Linux.
== NAMN ==
'''break''' — avsluta en ''for''-, ''while''- eller ''until''-slinga
== SYNOPSIS ==
<pre>
break [n]
</pre>
== BESKRIVNING ==
Om ''n'' anges ska verktyget ''break'' avsluta den ''n'':te omslutande
''for''-, ''while''- eller ''until''-slingan. Om ''n'' inte anges ska
''break'' bete sig som om ''n'' hade angetts som 1. Exekveringen ska
fortsätta med kommandot omedelbart efter den avslutade slingan.
Värdet på ''n'' är ett positivt decimalt heltal. Om ''n'' är större än
antalet omslutande slingor ska den yttersta omslutande slingan avslutas.
Om det inte finns någon omslutande slinga är beteendet ospecificerat.
En slinga ska omsluta ett ''break''- eller ''continue''-kommando om
slingan lexikalt omsluter kommandot. En slinga lexikalt omsluter ett
''break''- eller ''continue''-kommando om kommandot är:
* exekverat i samma exekveringsmiljö (se ''Section 2.12'',
  ''Shell Execution Environment'') som sammansatt-listan i slingans
  do-grupp (se ''Section 2.10.2'', ''Shell Grammar Rules''), och
* innehållet i en sammansatt-lista associerad med slingan
  (antingen i sammansatt-listan i slingans do-grupp eller, om slingan
  är en ''while''- eller ''until''-slinga, i sammansatt-listan som följer
  efter det reserverade ordet ''while'' eller ''until''), och
* inte i kroppen för en funktion vars funktionsdefinitionskommando
  (se ''Section 2.9.5'', ''Function Definition Command'') finns i en
  sammansatt-lista associerad med slingan.
Om ''n'' är större än antalet lexikalt omslutande slingor och det finns
en icke-lexikalt omslutande slinga som pågår i samma exekveringsmiljö
som kommandot ''break'' eller ''continue'', är det ospecificerat om den
slingan omsluter kommandot.
== FLAGGOR ==
Inga.
== OPERANDER ==
Se BESKRIVNING.
== STDIN ==
Används inte.
== INDATAFILER ==
Inga.
== MILJÖVARIABLER ==
Inga.
== ASYNKRONA HÄNDELSER ==
Standard.
== STDOUT ==
Används inte.
== STDERR ==
Standard error ska endast användas för diagnostiska meddelanden.
== UTDATAFILER ==
Inga.
== UTVIDGAD BESKRIVNING ==
Ingen.
== AVSLUTNINGSSTATUS ==
0
: Framgångsrikt avslut.
>0
: Värdet ''n'' var inte ett teckenlöst decimalt heltal större än eller lika med 1.
== KONSEKVENSER VID FEL ==
Standard.
''Följande avsnitt är informativa.''
== ANVÄNDNING ==
Ingen.
== EXEMPEL ==
<pre>
for i in *
do
    if test -d "$i"
    then break
    fi
done
</pre>
Resultatet av att köra följande exempel är ospecificerat:
det finns två slingor som pågår när kommandot ''break'' körs, och de är
i samma exekveringsmiljö, men ingen av slingorna omsluter kommandot
''break'' lexikalt. (Det finns inte heller några slingor som lexikalt
omsluter kommandona ''continue''.)
<pre>
foo() {
    for j in 1 2; do
        echo 'break 2' >/tmp/do_break
        echo "  sourcing /tmp/do_break ($j)..."
        # beteendet för break från körning av följande kommando
        # resulterar i ospecificerat beteende:
        . /tmp/do_break
        do_continue() { continue 2; }
        echo "  running do_continue ($j)..."
        # beteendet för continue i följande funktionsanrop
        # resulterar i ospecificerat beteende (om exekveringen når
        # denna punkt):
        do_continue
        trap 'continue 2' USR1
        echo "  sending SIGUSR1 to self ($j)..."
        # beteendet för continue i trap som anropas från följande
        # signal resulterar i ospecificerat beteende (om
        # exekveringen når denna punkt):
        kill -s USR1 $$
        sleep 1
    done
}
for i in 1 2; do
    echo "running foo ($i)..."
    foo
done
</pre>
== BAKGRUND ==
I tidiga förslag övervägdes att utöka syntaxen för ''break'' och
''continue'' så att de kunde hänvisa till en etikett associerad med den
aktuella slingan som ett bättre alternativ till metoden med ''n''.
Dock reserverar denna del av POSIX.1-2017 namnutrymmet för kommandonamn
som slutar med ett kolon. Det förutses att en framtida implementation
skulle kunna dra nytta av detta och erbjuda något i stil med:
<pre>
outofloop: for i in a b c d e
do
    for j in 0 1 2 3 4 5 6 7 8 9
    do
        if test -r "${i}${j}"
        then break outofloop
        fi
    done
done
</pre>
och att detta kan standardiseras efter att man fått erfarenhet av
implementationer.
== FRAMTIDA UTVECKLING ==
Ingen.
== SE ÄVEN ==
''Section 2.14'', ''Special Built-In Utilities''
== COPYRIGHT ==
Delar av denna text återges och reproduceras i elektronisk form från
IEEE Std 1003.1-2017, Standard for Information Technology --
Portable Operating System Interface (POSIX), The Open Group Base
Specifications Issue 7, 2018 Edition, Copyright (C) 2018 av
Institute of Electrical and Electronics Engineers, Inc och The Open Group.
Vid varje avvikelse mellan denna version och den ursprungliga standarden
från IEEE och The Open Group är originalstandarden från IEEE och
The Open Group det gällande referensdokumentet.
Originalstandarden kan erhållas online på
http://www.opengroup.org/unix/online.html .
Eventuella typografiska fel eller formateringsfel som förekommer på
denna sida har sannolikt introducerats under konverteringen av
källfilerna till manualsidesformat. För att rapportera sådana fel, se
https://www.kernel.org/doc/man-pages/reporting_bugs.html .
= Sidslut =
= Sidslut =



Versionen från 25 april 2026 kl. 11.04

break(1P)

PROLOG

Denna manualsida är en del av POSIX Programmer's Manual. Linux-implementationen av detta gränssnitt kan skilja sig (se motsvarande Linux-manualsida för detaljer om Linux-beteende), eller så kanske gränssnittet inte är implementerat på Linux.

NAMN

break — avsluta en for-, while- eller until-slinga

SYNOPSIS

break [n]

BESKRIVNING

Om n anges ska verktyget break avsluta den n:te omslutande for-, while- eller until-slingan. Om n inte anges ska break bete sig som om n hade angetts som 1. Exekveringen ska fortsätta med kommandot omedelbart efter den avslutade slingan. Värdet på n är ett positivt decimalt heltal. Om n är större än antalet omslutande slingor ska den yttersta omslutande slingan avslutas. Om det inte finns någon omslutande slinga är beteendet ospecificerat.

En slinga ska omsluta ett break- eller continue-kommando om slingan lexikalt omsluter kommandot. En slinga lexikalt omsluter ett break- eller continue-kommando om kommandot är:

  • exekverat i samma exekveringsmiljö (se Section 2.12,
 Shell Execution Environment) som sammansatt-listan i slingans
 do-grupp (se Section 2.10.2, Shell Grammar Rules), och
  • innehållet i en sammansatt-lista associerad med slingan
 (antingen i sammansatt-listan i slingans do-grupp eller, om slingan
 är en while- eller until-slinga, i sammansatt-listan som följer
 efter det reserverade ordet while eller until), och
  • inte i kroppen för en funktion vars funktionsdefinitionskommando
 (se Section 2.9.5, Function Definition Command) finns i en
 sammansatt-lista associerad med slingan.

Om n är större än antalet lexikalt omslutande slingor och det finns en icke-lexikalt omslutande slinga som pågår i samma exekveringsmiljö som kommandot break eller continue, är det ospecificerat om den slingan omsluter kommandot.

FLAGGOR

Inga.

OPERANDER

Se BESKRIVNING.

STDIN

Används inte.

INDATAFILER

Inga.

MILJÖVARIABLER

Inga.

ASYNKRONA HÄNDELSER

Standard.

STDOUT

Används inte.

STDERR

Standard error ska endast användas för diagnostiska meddelanden.

UTDATAFILER

Inga.

UTVIDGAD BESKRIVNING

Ingen.

AVSLUTNINGSSTATUS

0
: Framgångsrikt avslut.
>0
: Värdet n var inte ett teckenlöst decimalt heltal större än eller lika med 1.

KONSEKVENSER VID FEL

Standard.

Följande avsnitt är informativa.

ANVÄNDNING

Ingen.

EXEMPEL

for i in *
do
    if test -d "$i"
    then break
    fi
done

Resultatet av att köra följande exempel är ospecificerat: det finns två slingor som pågår när kommandot break körs, och de är i samma exekveringsmiljö, men ingen av slingorna omsluter kommandot break lexikalt. (Det finns inte heller några slingor som lexikalt omsluter kommandona continue.)

foo() {
    for j in 1 2; do
        echo 'break 2' >/tmp/do_break
        echo "  sourcing /tmp/do_break ($j)..."
        # beteendet för break från körning av följande kommando
        # resulterar i ospecificerat beteende:
        . /tmp/do_break

        do_continue() { continue 2; }
        echo "  running do_continue ($j)..."
        # beteendet för continue i följande funktionsanrop
        # resulterar i ospecificerat beteende (om exekveringen når
        # denna punkt):
        do_continue

        trap 'continue 2' USR1
        echo "  sending SIGUSR1 to self ($j)..."
        # beteendet för continue i trap som anropas från följande
        # signal resulterar i ospecificerat beteende (om
        # exekveringen når denna punkt):
        kill -s USR1 $$
        sleep 1
    done
}
for i in 1 2; do
    echo "running foo ($i)..."
    foo
done

BAKGRUND

I tidiga förslag övervägdes att utöka syntaxen för break och continue så att de kunde hänvisa till en etikett associerad med den aktuella slingan som ett bättre alternativ till metoden med n. Dock reserverar denna del av POSIX.1-2017 namnutrymmet för kommandonamn som slutar med ett kolon. Det förutses att en framtida implementation skulle kunna dra nytta av detta och erbjuda något i stil med:

outofloop: for i in a b c d e
do
    for j in 0 1 2 3 4 5 6 7 8 9
    do
        if test -r "${i}${j}"
        then break outofloop
        fi
    done
done

och att detta kan standardiseras efter att man fått erfarenhet av implementationer.

FRAMTIDA UTVECKLING

Ingen.

SE ÄVEN

Section 2.14, Special Built-In Utilities

COPYRIGHT

Delar av denna text återges och reproduceras i elektronisk form från IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 av Institute of Electrical and Electronics Engineers, Inc och The Open Group. Vid varje avvikelse mellan denna version och den ursprungliga standarden från IEEE och The Open Group är originalstandarden från IEEE och The Open Group det gällande referensdokumentet. Originalstandarden kan erhållas online på http://www.opengroup.org/unix/online.html .

Eventuella typografiska fel eller formateringsfel som förekommer på denna sida har sannolikt introducerats under konverteringen av källfilerna till manualsidesformat. För att rapportera sådana fel, se https://www.kernel.org/doc/man-pages/reporting_bugs.html .

Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/break.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 PC Service som har sponsrat Linux.se med webbhotell.