Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Bash: Przekazywanie zmiennych do skryptu

wtorek,

Bash: Przekazywanie zmiennych do skryptu

W powłoce bash skrypty mogą przyjmować zmienne zewnętrzne (argumenty) przekazywane do nich podczas uruchamiania. Te zmienne są dostępne w skrypcie jako $1, $2, $3, itd., gdzie $1 reprezentuje pierwszy argument, $2 drugi, i tak dalej. Dodatkowo $0 zawsze zawiera nazwę samego skryptu. Skrypty bash mogą elastycznie obsługiwać różne rodzaje argumentów, zarówno opcje z przełącznikami (-a, -b), jak i zwykłe zmienne pozycyjne. Daje to dużą swobodę w projektowaniu skryptów do różnorodnych zadań.

Proste przykłady

Podstawowe przekazywanie argumentów

#!/bin/bash
# skrypt.sh

echo "Nazwa skryptu: $0"
echo "Pierwszy argument: $1"
echo "Drugi argument: $2"

Uruchomienie:

bash skrypt.sh Apple Orange

Wyjście:

Nazwa skryptu: skrypt.sh
Pierwszy argument: Apple
Drugi argument: Orange

Liczba przekazanych argumentów

#!/bin/bash
# skrypt.sh

echo "Liczba argumentów: $#"

Uruchomienie:

bash skrypt.sh Apple Orange Banana

Wyjście:

Liczba argumentów: 3

Iteracja po wszystkich argumentach

#!/bin/bash
# skrypt.sh

for arg in "$@"
do
    echo "Argument: $arg"
done

Uruchomienie:

bash skrypt.sh Apple Orange Banana

Wyjście:

Argument: Apple
Argument: Orange
Argument: Banana

Przyjmowanie argumentów z opcjami

#!/bin/bash
# skrypt.sh

while getopts ":a:b:" opt; do
  case $opt in
    a) echo "Opcja -a z argumentem $OPTARG" ;;
    b) echo "Opcja -b z argumentem $OPTARG" ;;
    ?) echo "Nieznana opcja -$OPTARG" ;;
  esac
done

Uruchomienie:

bash skrypt.sh -a 123 -b 456

Wyjście:

Opcja -a z argumentem 123
Opcja -b z argumentem 456

Skrypt z opcjami i zmiennymi pozycyjnymi

#!/bin/bash
# skrypt.sh

while getopts ":a:b:" opt; do
  case $opt in
    a) avalue="$OPTARG" ;;
    b) bvalue="$OPTARG" ;;
  esac
done

shift $((OPTIND -1))

echo "Opcja -a: $avalue"
echo "Opcja -b: $bvalue"
echo "Pierwszy zwykły argument: $1"

Uruchomienie:

bash skrypt.sh -a 123 -b 456 Apple

Wyjście:

Opcja -a: 123
Opcja -b: 456
Pierwszy zwykły argument: Apple

Artykuł: Życzenia świąteczne

Życzenia świąteczne

Artykuł: Konkurs z Języka Angielskiego Zawodowego

Konkurs z Języka Angielskiego Zawodowego

Artykuł: Testujemy kontroler ARGB

Testujemy kontroler ARGB

Artykuł: Olimpiada Zdrowia PCK

Olimpiada Zdrowia PCK

Artykuł: Zostań dawcą szpiku!

Zostań dawcą szpiku!

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły