|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
System
  • Grundläggande datorkunskaper
  • Linux
  • Mac OS
  • Ubuntu
  • Unix
  • Windows
  • Windows Vista
  • Windows XP
  • Windows 7
  • Windows 10
  • Windows 11
  • Windows 2012
  • Windows 2016
  • Windows 2019
  • Windows 2022
  • Apple
  • Android
  • iOS
  • CentOS
  • * Dator Kunskap >> System >> Unix >> Content

    Hur använder du matriser i Unix?

    UNIX-skal (som bash, ZSH, SH) har inte matriser på samma sätt som språk på högre nivå som Python eller C ++. De hanterar matriser på ett mindre strukturerat sätt, vanligtvis med hjälp av whitespace-separerade strängar eller speciella tekniker. Så här kan du arbeta med matrisliknande strukturer i olika UNIX-skal-sammanhang:

    1. Whitespace-separerade strängar:

    Detta är den enklaste metoden. Du lagrar i huvudsak element som en enda sträng, separerad av mellanslag (eller andra avgränsare du väljer). Åtkomst till enskilda element kräver strängmanipulation.

    `` `bash

    my_array ="Apple Banana Cherry"

    åtkomst till det första elementet (förutsatt att rymdseparation):

    First_Element ="$ {my_array %% *}" #removes allt från det första utrymmet och framåt.

    echo "$ First_Element" # Output:Apple

    åtkomst till det andra elementet:

    second_element ="$ {my_array #*}" #removes allt upp till det första utrymmet.

    Second_Element ="$ {Second_Element %% *}" #removes allt från det första utrymmet och framåt

    Echo "$ Second_Element" # Output:Banana

    #Itering (mindre effektiv):

    för frukt i $ my_array; do

    echo "$ frukt"

    gjort

    `` `

    Begränsningar: Detta tillvägagångssätt är felutsatt om arrayelement innehåller själva utrymmen.

    2. Använda matriser i bash (och andra skal med matrisstöd):

    Bash (och några andra moderna skal) ger mer robust array -stöd.

    `` `bash

    förklarar en matris

    my_array =("äpple" "banan" "körsbär")

    Åtkomst till element:

    echo "$ {my_array [0]}" # output:Apple

    echo "$ {my_array [1]}" # utgång:banan

    Få matrislängden:

    echo "$ { # my_array [@]}" # output:3

    iterating:

    för i i "$ {! my_array [@]}"; gör #iterat genom index

    echo "$ {my_array [i]}"

    gjort

    eller iterera direkt genom element:

    för frukt i "$ {my_array [@]}"; do

    echo "$ frukt"

    gjort

    #Adding Elements:

    my_array+=("datum")

    echo "$ {my_array [3]}" #output:datum

    #Tillägg till array:

    my_array+=(druva orange)

    #Removing Elements (mindre enkelt, kräver växling):

    unset 'my_array [1]' #removes element vid index 1 (banan)

    #Inte att indexen inte flyttas automatiskt. Det finns ingen inbyggd skift efter radering.

    Skriv ut den modifierade arrayen:

    för frukt i "$ {my_array [@]}"; do

    echo "$ frukt"

    gjort

    `` `

    Viktiga överväganden:

    * Citat: Citera alltid arrayvariabler (t.ex. `" $ {my_array [@]} "`) för att förhindra orddelning och globering, vilket kan leda till oväntat beteende. Detta är särskilt kritiskt när arrayelement kan innehålla utrymmen eller specialtecken.

    * index 0: Matriser i bash är 0-indexerade, vilket betyder att det första elementet är vid index 0.

    * skalspecifikt: Syntaxen och funktioner som finns tillgängliga för matriser kan variera något beroende på det specifika skalet du använder (bash, zsh, ksh, etc.).

    3. Använda kommandoradsverktyg för matrisliknande operationer:

    För mer komplexa arraymanipulationer (sortering, filtrering etc.) kommer du ofta att hitta det mer effektivt att använda externa kommandoradsverktyg som `awk`,` sed` eller `sort`. Dessa verktyg utmärker sig vid textbehandling, som kan anpassas för att arbeta med data strukturerade som avgränsade strängar.

    För att till exempel sortera elementen i en vitspace-separerad sträng:

    `` `bash

    my_array ="Apple Banana Cherry"

    echo "$ my_array" | tr '' '\ n' | sort | tr '\ n' ''

    `` `

    Sammanfattningsvis, medan UNIX-skal inte har inbyggda, rika matrisstrukturer som andra språk, är BASHs array-stöd tillräckligt för många uppgifter. För komplexa manipulationer, överväg att utnyttja kraften i textbehandlingsföretag. Kom ihåg att alltid citera dina arrayvariabler korrekt för att undvika potentiella fel.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur en instruktion körs i SAP-1?
    ·Vilket kommandoradsskal öppnas i valp?
    ·Vad är Linux -kommandot för att visa en arbetskatalog…
    ·Vilken är den bästa filialen i NMIET?
    ·Hur Packa zippade filer i Unix
    ·Vad är socketalternativ i Unix?
    ·De typer av Unix Shells
    ·Vad är Orphan State i Unix?
    ·Unix Programming Tutorial
    ·Hur du schemalägger ett jobb i Unix
    Utvalda artiklarna
    ·Hur man ändra skrivbordsunderlägg i Ubuntu
    ·Hur du ändrar aktivitetsfältet Färga
    ·Hur man kontrollerar samtalshistoriken för ett nummer …
    ·Vad är skillnaden mellan Microsoft 2007 och Vista?
    ·Har SSH som den som beskrivs på Wikipedia?
    ·Hur hitta delade datorer på en Mac
    ·Hur man ställa in hur ofta Entourage får ny e-post
    ·Så här redigerar program som autostart från registre…
    ·Hur man stänger av styrplattans knapp på en Mac
    ·Hur du återställer en dator
    Copyright © Dator Kunskap https://www.dator.xyz