Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy
počítačové znalosti >> Systémy >> unix >> .

Ako používate polia v UNIX?

Shells Unix (ako Bash, Zsh, SH) nemajú polia rovnakým spôsobom ako jazyky na vyššej úrovni, ako je Python alebo C ++. Zvládajú polia menej štruktúrovaným spôsobom, zvyčajne používajú reťazce alebo špeciálne techniky oddelené rozlíšenie. Tu je návod, ako môžete pracovať s štruktúrami podobnými polí v rôznych kontextoch Unix Shell:

1. Reťazce oddelené za bieli:

Toto je najjednoduchšia metóda. V podstate ukladáte prvky ako jeden reťazec, oddelený priestormi (alebo inými delimitermi, ktoré si vyberiete). Prístup k jednotlivým prvkom vyžaduje manipuláciu s reťazcami.

`` `Bash

my_array ="Apple Banana Cherry"

Prístup k prvému prvku (za predpokladu separácie priestoru):

first_element ="$ {my_array %% *}" #Removes všetko od prvého priestoru ďalej.

Echo "$ first_element" # výstup:Apple

Prístup k druhému prvku:

secon_element ="$ {my_array #*}" #Remove všetko do prvého priestoru.

secon_element ="$ {secon_element %% *}" #Remova od prvého priestoru ďalej

Echo "$ secon_element" # výstup:banán

#ITERATION (menej efektívne):

pre ovocie v $ my_array; robiť

Echo „$ ovocie“

vykonaný

`` `

Obmedzenia: Tento prístup je náchylný na chyby, ak prvky poľa obsahujú samotné medzery.

2. Používanie polí v bash (a ďalšie škrupiny s podporou poľa):

Bash (a niektoré ďalšie moderné škrupiny) poskytujú robustnejšiu podporu polí.

`` `Bash

Vyhláste pole

my_array =("Apple" "banán" "čerešňa")

Prístup k prvkom:

echo "$ {my_array [0]}" # výstup:Apple

echo "$ {my_array [1]}" # výstup:banán

Získanie dĺžky poľa:

echo "$ { # my_array [@]}" # výstup:3

iterácia:

pre I in "$ {! my_array [@]}"; #itujte prostredníctvom indexov

echo "$ {my_array [i]}"

vykonaný

alebo iterovať priamo prostredníctvom prvkov:

pre ovocie v "$ {my_array [@]}"; robiť

Echo „$ ovocie“

vykonaný

#Správanie prvkov:

my_array+=("dátum")

echo "$ {my_array [3]}" #output:dátum

#Appending to Array:

my_array+=(Grape Orange)

#ROMOVING ELEKTY (menej priame, vyžaduje radenie):

Unset 'my_array [1]' #Removes Element pri indexe 1 (banán)

#Protive, že indexy sa automaticky neposunú nadol. Po vymazaní nie je vstavaný posun.

Vytlačte upravené pole:

pre ovocie v "$ {my_array [@]}"; robiť

Echo „$ ovocie“

vykonaný

`` `

Dôležité úvahy:

* citácia: Vždy citujte premenné poľa (napr. `" $ {My_array [@]} "`), aby ste zabránili rozdeleniu slov a glóbusu, čo môže viesť k neočakávanému správaniu. To je obzvlášť kritické, keď prvky poľa môžu obsahovať medzery alebo špeciálne znaky.

* index 0: Polia v bash sú 0-indexované, čo znamená, že prvý prvok je v indexe 0.

* Špecifické: Syntax a funkcie dostupné pre polia sa môžu mierne líšiť v závislosti od konkrétneho obalu, ktorý používate (bash, zsh, ksh atď.).

3. Používanie nástrojov príkazového riadku pre operácie podobné polí:

Pre zložitejšie manipulácie s poľami (triedenie, filtrovanie atď.) Často považujete za efektívnejšie používanie externých pomôcok príkazového riadku ako „Awk`,` Sed` alebo `Sort`. Tieto nástroje vynikajú pri spracovaní textu, ktoré sa dajú prispôsobiť tak, aby pracovali s údajmi štruktúrovanými ako vymedzené reťazce.

Napríklad na zoradenie prvkov reťazca oddeleného rozlíšeného:

`` `Bash

my_array ="Apple Banana Cherry"

Echo "$ my_array" | tr '' '\ n' | Zorenie | tr '\ n' ''

`` `

Stručne povedané, zatiaľ čo škrupiny Unix nemajú vstavané bohaté štruktúry polí, ako sú iné jazyky, podporu Bashovej poľa je pre mnoho úloh primeraná. V prípade zložitých manipulácií zvážte využitie sily nástrojov na spracovanie textu. Nezabudnite vždy citovať svoje premenné poľa správne, aby ste sa vyhli potenciálnym chybám.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené