Jak przekazać argumenty wiersza poleceń w skrypcie powłoki

Jak przekazać argumenty wiersza poleceń w skrypcie powłoki

Skrypty bash to proste pliki tekstowe zawierające zbiór poleceń. Skrypty Bash mogą pomóc w zadaniach administracyjnych, automatyzacji zadań i wykonywaniu wielu poleceń. Służą do automatyzacji powtarzających się zadań/działań.

Możemy umieścić wszystkie polecenia działające na terminalu w skrypcie bash i odwrotnie. Skrypty bash zawierają koncepcje programowania imperatywnego, takie jak pętle, warunki i funkcje.

Argumenty wiersza poleceń to parametry określone za pomocą nazwy pliku skryptu Bash w momencie wykonania. Argumenty wiersza polecenia pozwalają skryptowi wykonywać dynamiczne działania w oparciu o dane wejściowe:

Jak przekazać argument do skryptu powłoki

Aby przekazać parametr do skryptu Bash, po prostu napisz go po nazwie skryptu Bash w terminalu:

./My-Test-Script.argument sh  

Jak przekazać wiele argumentów do skryptu powłoki

Możesz także określić wiele argumentów oddzielonych przestrzenią wraz z nazwą pliku skryptu Bash:

./My-Test-Script.sh arg_1 arg_2 arg_3… arg_n  

Możemy użyć predefiniowanych zmiennych, aby przywołać te argumenty w skrypcie Bash. Pierwszy argument może być przywołany przez 1 USD, drugi według 2 USD, i tak dalej. Zmienna wstępnie zdefiniowana „0 USD” odnosi się do samego skryptu Bash. Lista innych ważnych predefiniowanych zmiennych podano poniżej:

  • [chroniony e -mail] : Wartości wszystkich argumentów
  • $# : Całkowita liczba argumentów
  • $$ : Identyfikator procesu bieżącej powłoki

Teraz użyjemy plik bash o nazwie Zwierząt.cii jako przykład.

#!/bin/bash echo „zwierzę w pierwszej obudowie wynosi: 1 $„ echo ”zwierzę w drugiej obudowie wynosi: 2 USD„ echo ”zwierzę w trzeciej obudowie wynosi: 3 USD„ Echo ”Całkowita liczba zwierząt w zoo są: $#"echo" Nazwy wszystkich zwierząt to: $@"
1234567#!/bin/bash echo „zwierzę w pierwszej obudowie wynosi: 1 $„ echo ”zwierzę w drugiej obudowie wynosi: 2 USD„ echo ”zwierzę w trzeciej obudowie wynosi: 3 USD„ Echo ”Całkowita liczba zwierząt w zoo są: $#„echo” nazwy wszystkich zwierząt to: [chroniony e -mail] ”

Teraz uruchomimy ten skrypt w terminalu:

Jak przekazać argument zawierający przestrzeń

Jeśli argument składa się z wielu słów, które są oddzielone przestrzenią, musimy go załatwić w pojedynczych cytatach, aby przekazać go jako pojedynczy argument:

#!/bin/bash echo „nazywam się: 1 $”
123#!/bin/bash echo „nazywam się: 1 $”

Jak przekazać argumenty z znakami specjalnymi

Możemy również przekazać znaki specjalne jako argumenty. Ale muszą być napisane przed nimi.

#!/bin/bash echo „Ile pieniędzy wydałeś dzisiaj: 1 USD”
123#!/bin/bash echo „Ile pieniędzy wydałeś dzisiaj: 1 USD”

Przekazywanie argumentów za pomocą flag i opcji w skrypcie powłoki

Korzystanie z flag i opcji to kolejny powszechny sposób nadania wkładowi na skrypt bash. Po opcji zawsze następuje wartość, podczas gdy flagami nie jest żadna wartość.

Po pierwsze, stworzymy nowy skrypt bash, który przyjmuje dwa różne argumenty (opcje) i.mi. -N/-Nazwa dla imienia i -I/-ID dla numeru identyfikacyjnego.

#!/bin/bash args = $ (getOpt -a --options n: i: -Long „Nazwa:, id:” -„$@”) set set -„$ args”, choć true; zrób przypadek „$ 1” w -n | --Name) Nazwa = „$ 2„ Echo ”Nazwa: $ name” Shift 2 ;; -i | --d) Identyfikacja = "$ 2" echo "id: $ identyfikacja" shift 2 ;; --) przerwa;; ESAC gotowe
1234567891011121314151617181920#!/bin/bash args = $ (getOpt -a --options n: i: -Long "Nazwa:, id:" -"[e -mail chroniony]") set eval -„$ args”, choć true; zrób przypadek „$ 1” w -n | --Name) Nazwa = „$ 2„ Echo ”Nazwa: $ name” Shift 2 ;; -i | --d) Identyfikacja = "$ 2" echo "id: $ identyfikacja" shift 2 ;; --) przerwa;; esacdone

W powyższym kodzie najpierw utworzyliśmy zmienną, która przechowuje wszystkie krótkie i długie nazwy naszych opcji. Na drugiej linii oceniliśmy Args zmienny. Następnie użyliśmy pętli while, aby przypisać blok kodu do każdej opcji.

W powyższym kodzie jest używany do pomijania wartości zmiennych. Cyfra, która następuje po przesunięciu, określa, ile zmiennych jest pomijanych.

podobnie

Teraz dodamy -v Flaga, która drukuje w pełnym menu:

#!/bin/bash args = $ (getOpt -a --options n: i: v -Long "Nazwa:, id:, Verbose" -"$@") set ocena -„$ args”, choć true; zrób przypadek „$ 1” w -n | --Name) Nazwa = „$ 2„ Echo ”Nazwa: $ name” Shift 2 ;; -i | --d) Identyfikacja = "$ 2" echo "id: $ identyfikacja" shift 2 ;; -V | --verbose) echo „Proszę użyć -n/-nazwa lub -i/-identyfikator odpowiednio do przekazania nazwy lub numeru identyfikacyjnego” Break ;; --) przerwa;; ESAC gotowe
1234567891011121314151617181920212223#!/bin/bash args = $ (getOpt -a --options n: i: v -Long "Nazwa:, id:, Verbose" -"[e -mail chroniony]") set eval -„$ args”, a true true ; zrób przypadek „$ 1” w -n | --Name) Nazwa = „$ 2„ Echo ”Nazwa: $ name” Shift 2 ;; -i | --d) Identyfikacja = "$ 2" echo "id: $ identyfikacja" shift 2 ;; -V | --verbose) echo „Proszę użyć -n/-nazwa lub -i/-identyfikator odpowiednio do przekazania nazwy lub numeru identyfikacyjnego” Break ;; --) przerwa;; esacdone

Flagi nie następuje okrężnicy, gdy są one zdefiniowane w skrypcie Bash, ponieważ nie biorą z nimi żadnych argumentów, w przeciwieństwie do opcji e.G. -N Opcja bierze za nią nazwę, taką jak Rahul.

Wniosek

Ludzki operator wykonujący ręcznie powtarzające się zadania jest bardzo nieefektywne. Tak więc takie zadania powinny być zautomatyzowane. Skrypty mogą nam w tym pomóc.

W tym artykule nauczyliśmy się przekazywać argumenty przez wiersz poleceń do skryptu Bash. Argumenty wiersza polecenia pomagają nam napisać dynamiczne skrypty, które wykonują różne funkcje w zależności od wejścia.

Ponadto omówiliśmy również różne rodzaje argumentów. Dotknęliśmy również trochę zdefiniowanych zmiennych.