Bash Range: Kā atkārtot čaulā ģenerētās secības

Bash Range How Iterate Over Sequences Generated Shell



Jūs varat atkārtot skaitļu secību bash divos veidos. Viens ir, izmantojot sek komanda un vēl viens ir, norādot cilpas diapazonu. In sek komandu, secība sākas no viena, skaitlis palielinās par vienu katrā solī un pēc noklusējuma izdrukā katru numuru katrā rindā līdz augšējai robežai. Ja skaitlis sākas no augšējās robežas, tas katrā solī samazinās par vienu. Parasti visi skaitļi tiek interpretēti kā peldošs komats, bet, ja secība sākas no vesela skaitļa, tiks izdrukāts veselu skaitļu decimāldaļu saraksts. Ja komandu seq var izpildīt veiksmīgi, tā atgriež 0, pretējā gadījumā atgriež jebkuru skaitli, kas nav nulle. Varat arī atkārtot skaitļu secību, izmantojot cilpu ar diapazonu. Abi sek komanda un cilpa ar diapazonu ir parādīta šajā apmācībā, izmantojot piemērus.

Komandas seq iespējas:

Tu vari izmantot sek komandu, izmantojot šādas iespējas.







-iekšā

Šo opciju izmanto, lai ciparus aizpildītu ar nullēm, lai izdrukātu visus vienāda platuma ciparus.



-f formātā

Šo opciju izmanto, lai drukātu numuru noteiktā formātā. Peldošo skaitli var formatēt, izmantojot %f, %g un %e kā reklāmguvuma rakstzīmes. %g tiek izmantots kā noklusējums.



-s virkne

Šo opciju izmanto, lai atdalītu ciparus ar virkni. Noklusējuma vērtība ir jauna rinda (“ n”).





Komandas seq piemēri:

Jūs varat lietot seq komandu trīs veidos. Jūs varat izmantot tikai augšējo robežu vai augšējo un apakšējo robežu vai augšējo un apakšējo robežu, palielinot vai samazinot katra soļa vērtību. Turpmākajos piemēros ir parādīti dažādi komandas seq lietojumi ar iespējām.

1. piemērs: seq komanda bez opcijas

Ja tiek izmantota tikai augšējā robeža, skaitlis sāksies no 1 un pieaugs par vienu katrā solī. Šī komanda izdrukās skaitli no 1 līdz 4.



$sek 4

Izeja:

Ja abas vērtības tiek izmantotas ar komandu seq, pirmā vērtība tiks izmantota kā sākuma numurs, bet otrā vērtība tiks izmantota kā beigu numurs. Šī komanda izdrukās skaitli no 7 līdz 15.

$sek 7 piecpadsmit

Izeja:

Ja ar seq komandu izmantosit trīs vērtības, otrā vērtība tiks izmantota kā pieauguma vai samazinājuma vērtība katram solim. Šai komandai sākuma numurs ir 10, beigu numurs ir 1, un katrs solis tiks skaitīts, samazinot 2.

$sek 10 -2 1

Izeja:

2. piemērs: secīgs ar –w iespēju

Šī komanda izdrukās izvadi, pievienojot nulli skaitlim no 1 līdz 9.

$sek -iekšā0110

Izeja:

3. piemērs: secība ar –s opciju

Šī komanda izmanto - kā atdalītāju katram kārtas numuram. Ciparu secība tiks drukāta, pievienojot - kā atdalītāju.

$sek -s-8

Izeja:

4. piemērs: sec ar opciju -f

Šī komanda drukās 10 datuma vērtības, sākot no 1. Šeit opcija %g tiek izmantota, lai pievienotu kārtas numuru ar citu virknes vērtību.

$sek -f '%g/04/2018' 10

izvade:

Bash Range

Šo komandu izmanto, lai ģenerētu peldošā komata skaitļu secību, izmantojot %f. Šeit skaitlis sāksies no 3 un pieaugs par 0,8 katrā solī, un pēdējais skaitlis būs mazāks vai vienāds ar 6.

$sek -f '%f' 3 0.8 6

Izeja:

5. piemērs. Ierakstiet secību failā

Ja vēlaties saglabāt ciparu secību failā, nedrukājot konsolē, varat izmantot šādas komandas. Pirmā komanda izdrukās numurus failā ar nosaukumu seq.txt . Skaitlis tiks ģenerēts no 5 līdz 20 un palielināsies par 10 katrā solī. Otro komandu izmanto, lai apskatītu seq.txt failu.

$ 5 10 20 | kaķis> seq.txt
$ cat seq.txt

Izeja:

6. piemērs: cilpas seq izmantošana

Pieņemsim, ka vēlaties izveidot failus ar nosaukumu no fn1 līdz fn10, izmantojot cilpu ar secību. Izveidojiet failu ar nosaukumu sq1.bash un pievienojiet šādu kodu. Cilpa atkārtos 10 reizes, izmantojot komandu seq, un izveidos 10 failus secībā fn1, fn2, fn3… ..fn10.

#!/bin/bash
priekšiiekšā ``sek 10``
darīt
pieskartiesfn.$ i
darīts

Izeja:

Palaidiet šādas komandas, lai izpildītu bash faila kodu un pārbaudītu, vai faili ir izveidoti.

$bashsq1.bash
$ls

Cilpas ar diapazonu piemēri:

7. piemērs: cilpai ar diapazonu

Komandas seq alternatīva ir diapazons. Cilpas diapazonu varat izmantot, lai ģenerētu skaitļu secību, piemēram, sec. Ierakstiet šādu kodu bash failā ar nosaukumu sq2.bash . Cilpa atkārtosies 5 reizes un katrā solī izdrukās katra skaitļa kvadrātsakni.

#!/bin/bash
priekšniekšā {1..5}
darīt
((rezultāts= n*n))
izmest ārā $ n kvadrāts=$ rezultāts
darīts

Izeja:

Palaidiet komandu, lai izpildītu faila skriptu.

$bashsq2.bash

8. piemērs: cilpai ar diapazonu un pieauguma vērtību

Pēc noklusējuma skaitlis tiek palielināts par vienu katrā solī, piemēram, secībā. Varat arī mainīt diapazona pieauguma vērtību. Ierakstiet šādu kodu bash failā ar nosaukumu kv3.bash . Skripta for cilpa atkārtojas 5 reizes, katrs solis tiek palielināts par 2 un izdrukā visus nepāra skaitļus no 1 līdz 10.

#!/bin/bash
izmest ārā 'visi nepāra skaitļi no 1 līdz 10 ir'
priekšiiekšā {1..10..2}
darīt
izmest ārā $ i;
darīts

Izeja:

Palaidiet komandu, lai izpildītu faila skriptu.

$bashkv3.bash

Ja vēlaties strādāt ar ciparu secību, varat izmantot jebkuru no šajā apmācībā parādītajām opcijām. Pēc šīs apmācības pabeigšanas bash skriptā varēsit efektīvāk izmantot komandu seq un ciklam ar diapazonu.