Kā rīkoties ar komandrindas argumentiem bas skriptā

How Handle Command Line Arguments Bash Script



Daudzos gadījumos bash skriptiem ir nepieciešamas argumentu vērtības, lai skriptam nodrošinātu ievades iespējas. Jūs varat rīkoties ar komandrindas argumentiem bash skriptā divos veidos. Viens ir, izmantojot argumentu mainīgie un vēl viens ir, izmantojot getopts funkciju. Šajā apmācībā ir parādīts, kā rīkoties ar komandrindas argumentiem.

Izmantojot argumentu mainīgos:

Argumentu mainīgais sākas no USD 0. Galvenā skripta faila nosaukums tiek saglabāts $ 0, kas saņem argumentu vērtības no komandrindas argumentiem. Ja komandrindā tiek nodoti divi argumenti, argumentu vērtības secīgi tiks saņemtas mainīgajos $ 1 un $ 2.







-1 piemērs. Trīs skaitlisku vērtību nosūtīšana kā argumenti

Izveidojiet bash failu un pievienojiet šādu kodu. Skripts saņems trīs argumentu vērtības un saglabās 1, 2 un 3 ASV dolāros. Tas saskaitīs kopējo argumentu skaitu, drukās argumentu vērtības ar cilpu un bez cilpas. Visbeidzot, izdrukājiet visu argumentu vērtību summu.



#!/bin/bash

# Tiek skaitīts kopējais argumentu skaits
izmest ārā 'Kopējais argumentu skaits: $#'

# Argumentu vērtību lasīšana atsevišķi
izmest ārā 'Pirmā argumenta vērtība: $ 1'
izmest ārā 'Otrā argumenta vērtība: 2 ASV dolāri'
izmest ārā 'Trešā argumenta vērtība: 3 ASV dolāri'

# Argumentu vērtību lasīšana, izmantojot cilpu
priekšargvaliekšā '[aizsargāts ar e -pastu]'
darīt
izmest ārā -n '$ argval'
darīts

# Argumentu vērtību pievienošana
summa= $(($ 1+2 ASV dolāri+3 ASV dolāri))

# izdrukājiet rezultātu
izmest ārā -Un ' nSummas rezultāts =$ summa'

Palaidiet bash failu ar trim ciparu argumentu vērtībām.



$bashcmdline1.shpiecdesmit 35 piecpadsmit





-2. Piemērs: faila nosaukuma ņemšana par argumentu

Izveidojiet bash failu un pievienojiet šādu kodu, lai saskaitītu jebkura faila kopējo rakstzīmju skaitu. Šeit faila nosaukums tiks nodots kā komandrindas arguments.

#!/bin/bash
faila nosaukums=$ 1
totalchar=``tualete -c $ faila nosaukums``
izmest ārā Kopējais rakstzīmju skaits ir$ totalchar'

Palaidiet bash skriptu ar faila nosaukumu kā viena argumenta vērtību un izpildiet citu komandu, lai pārbaudītu šī faila kopējo rakstzīmju skaitu. Šeit faila darbinieks.txt tiek izmantots kā argumenta vērtība. Kopējais faila darbinieks.txt rakstzīmju skaits ir 204.



$bashcmdline2.sh darbinieks.txt
$tualete -cdarbinieks.txt

Izmantojot funkciju getopts:

Ja vēlaties saglabāt datus datu bāzē vai jebkurā failā vai izveidot atskaiti par noteiktu formātu, pamatojoties uz komandrindas argumentu vērtībām getopts funkcija ir labākā iespēja uzdevuma veikšanai. Tā ir iebūvēta linux funkcija. Tātad, jūs varat viegli izmantot šo funkciju savā skriptā, lai no komandrindas lasītu formatētus datus.

Piemērs -1: Argumentu lasīšana, izmantojot funkciju getopts

Izveidojiet bash failu un pievienojiet šādu skriptu, lai saprastu tā izmantošanu getopts funkciju. Funkcija “getopts” tiek izmantota kopā ar cilpu, lai lasītu komandrindas argumentu opcijas un argumentu vērtības. Šeit tiek izmantotas 4 iespējas “Es”, “n”, “m” un 'Un' . gadījuma paziņojums tiek izmantots, lai saskaņotu konkrēto opciju un saglabātu argumenta vērtību mainīgajā. Visbeidzot, izdrukājiet mainīgā vērtības.

#!/bin/bash
kamēr getopts ':manī:'dusmīgs;darīt
gadījumā $ arg iekšā
i) ID=$ OPTARG;;
n) Vārds=$ OPTARG;;
m) Ražošanas datums=$ OPTARG;;
Un) Derīguma termiņš=$ OPTARG;;
esac
darīts
izmest ārā -Un ' n$ ID $ Name $ Manufacturing_date $ Expire_date n'

Palaidiet failu ar tālāk norādītajām opcijām un argumentu vērtībām. Šeit p100 ir opcijas -i vērtība, 'karstā kūka' ir opcijas -n vērtība, '01-01-2018 'ir opcijas -m vērtība un '06 -01-2018' ir vērtība - e variants.

$bashcmdline3.sh-ip001-n 'Karstā kūka' -m '01-01-2018' -Un '06-01-2018 '

Ja jums ir jānosūta vienkāršas vērtības skriptā, labāk ir izmantot argumentu mainīgos. Bet, ja vēlaties nosūtīt datus formatētā veidā, argumentu vērtību izgūšanai labāk izmantot funkciju getopts. Lai iegūtu vairāk informācijas, skatieties video !