Bash Shell „Exec”, „eval”, „źródło” - jaka jest różnica

Bash Shell „Exec”, „eval”, „źródło” - jaka jest różnica

Wśród wielu funkcji skryptów Bash są komendy Exec, Eval i Source, które można użyć do wykonywania poleceń, uruchamiania skryptów i ustawiania zmiennych środowiskowych. W tym artykule omówimy każde z tych poleceń i tego, jak można je użyć w skryptach Bash.

Exec w skryptach Bash

To polecenie zastępuje bieżący proces działający nowym procesem, ponieważ można go użyć do uruchamiania nowego polecenia w tej samej powładzie lub do zastąpienia bieżącej powłoki nową. Na przykład, aby wymienić bieżącą powłokę nową powłoką bash, możesz użyć komendy exec bash. Stworzy to nową skorupę z tym samym środowiskiem co obecna skorupa, ale wszelkie zmiany wprowadzone w nowej skorupce nie będą widoczne w starej powładzie.

Exec

Oto przykładowy kod skryptu Bash, który używa tego polecenia EXEC:

#!/bin/bash
Echo „Skrypt początkowy…”
ls -l
Skrypt echo „."

Polecenie EXEC służy do zastąpienia bieżącego procesu powłoki określonym poleceniu lub skrypcie, więc w tym przykładzie skrypt drukuje komunikat za pomocą polecenia echo, a następnie wykonuje polecenie LS -l za pomocą exec. Ponieważ Exec zastępuje bieżący proces LS -L, następujące polecenie Echo nigdy nie jest wykonywane.

Oceń w skryptach Bash

Polecenie eval służy do oceny polecenia przechowywanego w zmiennej ciągu, ponieważ jest to przydatne, gdy trzeba dynamicznie wygenerować polecenie oparte na wejściach użytkownika lub innych zmiennych. Na przykład, jeśli masz zmienną CMD, która zawiera polecenie, możesz użyć polecenia Eval $ cmd do wykonania polecenia zapisanego w zmiennej CMD.

ocenia

Oto przykładowy kod BASH, który korzysta z tego polecenia EXEC:

#!/bin/bash
# Przykład polecenia eval
cmd = "echo hello, świat!"
ocenia $ cmd

Polecenie evalu służy do wykonywania polecenia powłoki, które jest dynamicznie konstruowane w czasie wykonywania, więc w tym przykładzie zmienna CMD jest ustawiona na ciąg „Echo Hello, World!". Komenda eval jest następnie używana do wykonywania zawartości CMD, która drukuje wiadomość „Witaj, świat!„Do konsoli.

Źródło w skryptach Bash

Polecenie źródłowe służy do wykonywania poleceń, które są przechowywane w pliku i jest przydatne, gdy masz skrypt, który ustawia zmienne środowiskowe lub definiuje funkcje, których chcesz użyć w bieżącej powładzie. Na przykład, jeśli masz skrypt my_script.SH, który ustawia zmienne środowiskowe, możesz użyć źródła polecenia my_script.SH, aby wykonać skrypt i ustawić zmienne środowiskowe w bieżącej powładzie.

źródło < file-name>

Oto przykład kodu bash wykonuje skrypt powłoki w skrypcie za pomocą polecenia źródłowego:

#!/bin/bash
# Przykład polecenia źródłowego
źródło ./bashfile2.cii

Polecenie źródłowe służy do wykonywania poleceń w określonym skrypcie w bieżącym środowisku powłoki, więc w tym przykładzie skrypt my_script.SH jest wykonywany za pomocą źródła. Polecenia w Bashfile2.SH są wykonywane w bieżącym środowisku powłoki, które może być przydatne do ustawiania zmiennych środowiskowych lub definiowania funkcji, które będą używane.

Wniosek

Bash zapewnia potężne polecenia, takie jak Exec, Eval i Source, które można użyć do zarządzania systemami Linux. Polecenie EXEC służy do zastąpienia bieżącego procesu nowym, polecenie Eval służy do oceny polecenia przechowywanego w zmiennej, a polecenie źródła służy do wykonywania poleceń przechowywanych w pliku. Polecenia te mogą być bardzo przydatne w zadaniach w zakresie scenariuszy i automatyzacji i mogą pomóc w wydajniejszej pracy w skorupce Bash.