Bash Argumenty wejściowe Funkcje z parametrami – sprawdź 2 proste przykłady!

Share This Post, Help Others, And Earn My Heartfelt Appreciation! :)
4.9
(518)

Czym jest Bash?

Bash jest w zasadzie nowoczesną warstwą do wykorzystania w sh. Jak możemy przeczytać (Bash argumenty wejściowe funkcje z parametrami) na oficjalnej stronie bash jest opisany jako: „Zawiera ulepszenia funkcjonalne względem sh zarówno w zakresie programowania, jak i interaktywnego użycia. Ponadto większość skryptów sh może być uruchamiana przez Bash bez modyfikacji.”

  • command-line editing,
  • unlimited size command history,
  • job control,
  • shell functions and aliases,
  • indexed arrays of unlimited size,
  • integer arithmetic in any base from two to sixty-four.

Bash Argumenty wejściowe Funkcje z parametrami

Parse input arguments

Bardzo często chcemy uruchomić skrypt bash z argumentami wejściowymi. Często pojawia się pytanie, jak zrobić to w odpowiedni, czysty i przejrzysty sposób, tzw. produkcję i który w przyszłości będzie można łatwo zmienić lub rozwinąć. I na pewno tak się stanie 🙂

Weźmy na przykład uruchomienie skryptu i przekazanie do niego dwóch parametrów. Załóżmy, że chcemy określić nazwę środowiska (-e) i liczbę iteracji (-i) wykonania jakiegoś kodu wewnątrz skryptu:

./test-script.sh -e DEV -i 10

Następnie w pliku test-script.sh możemy go przeanalizować za pomocą następującego kodu:

usage() {
  echo "Usage: $0 [option...]" >&2
  echo "   -e     env"
  echo "   -i     iterations"
  exit 1
}

while getopts ":e:i:" o; do
  case "${o}" in
  e)
    ENV=${OPTARG}
    ;;
  i)
    ITERATIONS=${OPTARG}
    ;;
  *)
    usage
    ;;
  esac
done
shift $((OPTIND - 1))

Funkcja z parametrami

Bardzo często chcemy stworzyć funkcję z parametrami. Nie jest to jednak tak oczywiste, jak w innych językach programowania, w których parametry są przekazywane w nawiasach. Musimy się do nich dostać potajemnie. Wywołanie funkcji wygląda tak:

someFunction "$ENV" "$ITERATIONS"

Funkcja realizowana jest w następujący sposób:

someFunction() {

  environment=$1
  iterations=$2

  ...

}

W przypadku kolejnych parametrów odwołujemy się do $ i jego numeru, zaczynając od 1.

If you enjoyed this post please add the comment below and share this post on your Facebook, Twitter, LinkedIn or another social media webpage.
Thanks in advanced!

How useful was this post?

Click on a star to rate it!

Average rating 4.9 / 5. Vote count: 518

No votes so far! Be the first to rate this post.

Subscribe
Powiadom o
guest
0 Comments
Inline Feedbacks
View all comments