Jak przekazać argumenty wiersza poleceń w skrypcie powłoki
- 3262
- 432
- Juliusz Sienkiewicz
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.
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:
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.
- « Jak tworzyć kopię zapasową i przywrócić bazę danych PostgreSQL (5 wskazówek)
- Co to jest Apache Prefork, Worker and Event MPM (moduły multimprocessing) »