Polecenia Linuksa

Polecenie oceny Bash

Polecenie oceny Bash
Polecenie 'eval' jest używane w bash do wykonywania argumentów jak polecenie powłoki. Argumenty są łączone w łańcuch i przyjmowane jako dane wejściowe dla polecenia powłoki w celu wykonania polecenia. 'eval' wykonuje polecenie w bieżącej powłoce. To polecenie jest przydatne, gdy wymaga wykonania dowolnego polecenia, które zawiera specjalny operator lub zastrzeżone słowa kluczowe. To polecenie może być użyte w dowolnym skrypcie, również tam, gdzie nazwa zmiennej jest nieznana do momentu wykonania skryptu. Ten samouczek pomoże użytkownikom Linuksa nauczyć się korzystania z tego polecenia.

Składnia:

eval [argument… ]

Tutaj argumenty są analizowane i łączone w łańcuch, który zostanie wykonany przez powłokę. 'eval' zwraca kod statusu wyjścia po wykonaniu polecenia. 'eval' zwraca 0 jako kod statusu wyjścia, jeśli nie podano argumentu lub podano tylko pusty argument.

Przykład-1: Wykonaj polecenie „wc” za pomocą „eval”

Załóżmy, że plik tekstowy o nazwie „departament.tekst” zawiera następujący tekst. Całkowitą liczbę wierszy pliku można policzyć za pomocą polecenia „wc”'.

departament.tekst

CSE
EEE
ETE
JĘZYK ANGIELSKI
BBA
APTEKA

Następujące polecenie zapisze polecenie 'wc', aby zliczyć całkowitą liczbę wierszy pliku, departament.tekst do zmiennej, $mojepolecenie.

$ mycommand="wc -l dział.tekst"

Następujące polecenie 'eval' uruchomi polecenie 'wc' i wyświetli całkowitą liczbę wierszy.

$ eval $moja komenda

Wynik:

Dane wyjściowe pokazują, że departament.tekst plik ma 6 wierszy.

Przykład-2: Wykonaj polecenie „expr” za pomocą „eval”

Utwórz plik bash o nazwie ewaluacja.cii i dodaj następujący skrypt. Ten skrypt przypisze dwie wartości całkowite do zmiennej $x i $y. Polecenia „expr” i „echo” są przypisane do dwóch zmiennych, $c1 i $c2, które są wykonywane później za pomocą polecenia „eval”.

ewaluacja.cii

#!/bin/bash
#Zainicjuj zmienną x i y
x=5
y=15
#Pierwsza zmienna polecenia służy do przypisania polecenia 'expr' w celu dodania wartości $x i $y
c1="'wyrażenie $x + $y'"
#Druga zmienna polecenia służy do przypisania polecenia „echo”
c2="echo"
#'eval' obliczy i wypisze sumę $x i $y, wykonując polecenia $c1
oraz zmienne $c2
oszacowanie $c2 $c1

Uruchom skrypt.

$ bash evaltest.cii

Suma 5 i 15 to 20, która jest pokazana na wyjściu.

Przykład-3: Wydrukuj wartość zmiennej, która jest przypisana w innej zmiennej

Utwórz skrypt bash o nazwie evaltest2.sh z następującym skryptem. W tym przypadku jedna zmienna służy do przypisania nazwy innej zmiennej zawierającej ciąg danych. Polecenie 'eval' wypisze wartość zmiennej, która jako zawartość zawiera nazwę innej zmiennej.

evaltest2.cii

#!/bin/bash
# Przypisz wartość ciągu do zmiennej $str1
str1="Skrypt powłoki"
# Przypisz nazwę zmiennej „str1” do zmiennej $str2
str2=str1
#Zapisz polecenie w zmiennej $command
polecenie="echo"
# Komenda 'eval' wykona polecenie 'echo' i wyświetli wartość zmiennej
która zawiera inną zmienną
eval $polecenie \$$str2

Uruchom skrypt.

$ bash evaltest2.cii

Wypisywana jest wartość zmiennej $str1.

Istnieje inny sposób uzyskania dostępu do wartości zmiennej, której nazwa jest wartością innej zmiennej. Za pomocą '!' symbol wartość tego typu zmiennej jest dostępna. Poniższego polecenia można użyć jako alternatywy dla poprzedniego skryptu, a wynik będzie taki sam.

$ str1="Skrypt powłoki"; słowo2=sł1; polecenie="echo"; eval $polecenie $!str2

Przykład-4: Utwórz serię zmiennych z wartościami i oblicz sumę wartości za pomocą polecenia „ocena”

Utwórz skrypt bash o nazwie evaltest3.sh i dodaj następujący skrypt. Ten skrypt utworzy serię zmiennych i zapisze wartości w zmiennych za pomocą polecenia „eval”. Wartości zmiennych zostaną dodane i zapisane w zmiennej o nazwie $sum. Następnie polecenie „echo” z wartościami ciągu jest przypisywane do zmiennej, która jest używana w poleceniu „eval” do wypisania wartości zmiennej $sum.

test oceny3.cii

#!/bin/bash
# Zainicjuj zmienną $sum wartością 0
suma=0
# Zadeklaruj pętlę for, która będzie iterować 4 razy
dla n w 1… 4
zrobić
# Utwórz cztery zmienne za pomocą polecenia eval
oszacowanie x$n=$n
# Dodaj wartości zmiennej za pomocą $sum
suma=$(($suma+$x$n))
gotowy
# Przypisz polecenie 'echo' z ciągiem do zmiennej
command="echo 'Wynik sumy=""
# polecenie 'eval' wypisz wartość sumy za pomocą zmiennych
eval $polecenie $sum

Uruchom skrypt.

$ bash evaltest3.cii

Suma czterech zmiennych wynosi 1+2+3+4=10, która jest wypisywana.

Przykład-5: Użycie polecenia 'eval' do usunięcia listy plików

Utwórz plik bash o nazwie evaltest4.sh z następującym skryptem. Ten skrypt odczyta trzy argumenty wiersza poleceń jako nazwy plików, które zostaną usunięte i przechowa wartości argumentów w zmiennej tablicowej $fn. Polecenie 'rm' jest przechowywane w zmiennej $command. W tym miejscu zadeklarowana jest pętla For, która pobiera każdą nazwę pliku i usuwa plik za pomocą polecenia 'eval', jeśli plik istnieje.

evaltest4.cii

#!/bin/bash
#Zadeklaruj tablicę
zadeklaruj -A fn
# Odczytaj trzy argumenty wiersza poleceń i zapisz je w trzech indeksach tablicy
fn[0]=1 USD
fn[1]=2 USD
fn[2]=3 USD
# Zapisz polecenie usuwania w zmiennej
polecenie = "rm"
# Pętla for wykona trzykrotną iterację, aby odczytać trzy elementy tablicy
dla indeksu w 0 1 2
zrobić
# Sprawdź, czy plik istnieje, czy nie istnieje
if [[ -f $fn[$indeks] ]]; następnie
# jeśli plik istnieje, usuń plik
eval $polecenie $fn[$index]
# Poinformuj użytkownika, że ​​plik został usunięty
echo „$fn[$index] zostało usunięte."
Jeszcze
#Poinformuj użytkownika, że ​​plik nie istnieje
echo "$fn[$index] nie istnieje."
fi
gotowy

Uruchom skrypt.

$ bash evaltest4.sh znaki.pozycja docx.produkt txt.docx

Tutaj podczas wykonywania skryptu podawane są trzy nazwy plików. Dane wyjściowe pokazują, że znaki.docx i produkt.docx istnieje w bieżącej lokalizacji, a pliki są usuwane i, item.txt nie istnieje w bieżącej lokalizacji.

Wniosek

Każde polecenie bash można wykonać poleceniem 'eval', deklarując jako ciąg. Polecenie „eval” jest używane w tym samouczku do wykonywania różnych wbudowanych poleceń bash i tworzenia serii zmiennych. Użycie polecenia „eval” zostanie usunięte dla użytkowników i będą mogli używać tego polecenia do różnych celów po przeczytaniu tego samouczka.

How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...
How to change Mouse pointer and cursor size, color & scheme on Windows 10
The mouse pointer and cursor in Windows 10 are very important aspects of the operating system. This can be said for other operating systems as well, s...
Gry Darmowe i otwarte silniki gier do tworzenia gier na Linuksa
Darmowe i otwarte silniki gier do tworzenia gier na Linuksa
Ten artykuł zawiera listę darmowych i otwartych silników gier, których można używać do tworzenia gier 2D i 3D w systemie Linux. Istnieje wiele takich ...