Sintaksis:
eval [argumen…]Di sini, argumen diuraikan dan digabungkan menjadi string yang akan dieksekusi oleh shell. 'eval' mengembalikan kode status keluar setelah menjalankan perintah. 'eval' mengembalikan 0 sebagai kode status keluar jika tidak ada argumen yang diberikan atau hanya argumen nol yang diberikan.
Contoh-1: Jalankan perintah 'wc' menggunakan 'eval'
Misalkan sebuah file teks bernama “departemen.txt” berisi teks berikut. Jumlah baris file dapat dihitung dengan perintah 'wc'.
departemen.txt
MTKEEE
ET
INGGRIS
BBA
FARMASI
Perintah berikut akan menyimpan perintah 'wc' untuk menghitung jumlah baris total file, departemen.txt ke variabel, $mycommand.
$ mycommand="wc -l departemen.txt"Perintah 'eval' berikut akan menjalankan perintah 'wc' dan mencetak jumlah baris.
$ eval $perintah sayaKeluaran:
Outputnya menunjukkan bahwa departemen.txt file memiliki 6 baris.
Contoh-2: Jalankan perintah 'expr' menggunakan 'eval'
Buat file bash bernama evaluasi.SH dan tambahkan skrip berikut. Script ini akan menetapkan dua nilai integer ke dalam variabel $x dan $y. Perintah 'expr' dan 'echo' ditetapkan ke dalam dua variabel, $c1 dan $c2 yang kemudian dieksekusi dengan menggunakan perintah 'eval'.
evaluasi.SH
#!/bin/bash#Inisialisasi variabel x dan y
x=5
y=15
#Variabel perintah pertama digunakan untuk menetapkan perintah 'expr' untuk menambahkan nilai $x dan $y
c1="'expr $x + $y'"
#Variabel perintah kedua digunakan untuk menetapkan perintah 'echo'
c2="gema"
#'eval' akan menghitung dan mencetak jumlah $x dan $y dengan menjalankan perintah $c1
dan variabel $c2
evaluasi $c2 $c1
Jalankan skrip.
$ bash evaluasi.SHJumlah 5 dan 15 adalah 20 yang ditunjukkan pada output.
Contoh-3: Cetak nilai variabel yang ditetapkan dalam variabel lain
Buat skrip bash bernama evaltest2.sh dengan skrip berikut:. Di sini, satu variabel digunakan untuk menetapkan nama variabel lain yang berisi data string. Perintah 'eval' akan mencetak nilai variabel yang berisi nama variabel lain sebagai konten.
evaluasi2.SH
#!/bin/bash# Tetapkan nilai string ke dalam variabel, $str1
str1="Skrip Shell"
# Tetapkan nama variabel, “str1” ke variabel $str2
str2=str1
#Simpan perintah ke dalam variabel, $command
perintah = "gema"
# Perintah 'eval' akan menjalankan perintah 'echo' dan mencetak nilai variabel
yang berisi variabel lain
eval $perintah \$$str2
Jalankan skrip.
$ bash evaluasi tes2.SHNilai variabel, $str1 dicetak is.
Ada cara lain untuk mengakses nilai variabel yang namanya adalah nilai variabel lain. Menggunakan '!' simbol nilai variabel jenis ini dapat diakses. Perintah berikut dapat digunakan sebagai alternatif dari skrip sebelumnya dan hasilnya akan sama:.
$str1="Skrip Cangkang"; str2=str1; perintah = "gema"; eval $perintah $!str2Contoh-4: Buat serangkaian variabel dengan nilai dan hitung jumlah nilai menggunakan perintah 'eval'
Buat skrip bash bernama evaltest3.sh dan tambahkan skrip berikut. Skrip ini akan membuat serangkaian variabel dan menyimpan nilainya ke dalam variabel menggunakan perintah 'eval'. Nilai dari variabel akan ditambahkan dan disimpan ke dalam variabel bernama $sum. Selanjutnya, perintah 'echo' dengan nilai string ditetapkan ke dalam variabel yang digunakan dalam perintah 'eval' untuk mencetak nilai variabel $sum.
evaluasi3.SH
#!/bin/bash# Inisialisasi variabel $sum dengan nilai 0
jumlah = 0
# Deklarasikan for loop yang akan diulang sebanyak 4 kali
untuk n dalam 1… 4
melakukan
# Buat empat variabel menggunakan perintah eval
evaluasi x$n=$n
# Tambahkan nilai variabel dengan $sum
jumlah=$(($jumlah+$x$n))
selesai
# Tetapkan perintah 'echo' dengan string ke dalam variabel
command="echo 'Hasil penjumlahan='"
# Perintah 'eval' mencetak nilai penjumlahan menggunakan variabel
eval $perintah $sum
Jalankan skrip.
$ bash evaluasi 3.SHJumlah keempat variabel adalah, 1+2+3+4=10 yang tercetak.
Contoh-5: Menggunakan perintah 'eval' untuk menghapus daftar file
Buat file bash bernama evaltest4.sh dengan skrip berikut:. Skrip ini akan membaca tiga argumen baris perintah sebagai nama file yang akan dihapus dan menyimpan nilai argumen ke dalam variabel array, $fn. Perintah 'rm' disimpan dalam variabel, $command. Untuk loop dideklarasikan di sini untuk mengambil setiap nama file dan menghapus file menggunakan perintah 'eval' jika file tersebut ada.
evaluasi4.SH
#!/bin/bash#Deklarasikan sebuah array
nyatakan -A fn
# Baca tiga argumen baris perintah dan simpan ke dalam tiga indeks array
fn[0]=$1
fn[1]=$2
fn[2]=$3
# Simpan perintah hapus ke dalam variabel
perintah = "rm"
# for loop akan mengulangi tiga kali untuk membaca tiga elemen array
untuk indeks dalam 0 1 2
melakukan
# Periksa file ada atau tidak ada
if [[ -f $fn[$indeks] ]]; kemudian
# jika file tersebut ada maka hapus file tersebut
eval $command $fn[$index]
# Beri tahu pengguna bahwa file tersebut dihapus
echo "$fn[$index] dihapus."
Lain
#Informasikan kepada pengguna bahwa file tersebut tidak ada
echo "$fn[$index] tidak ada."
fi
selesai
Jalankan skrip.
$ bash evaluasi4.tanda sh.barang docx.produk txt.dokDi sini, tiga nama file disediakan pada saat menjalankan skrip. Outputnya menunjukkan bahwa tanda.docx dan produk.docx ada di lokasi saat ini dan file dihapus dan, item.txt tidak ada di lokasi saat ini.
Kesimpulan
Perintah bash apa pun dapat dieksekusi oleh perintah 'eval' dengan mendeklarasikan sebagai string. Perintah 'eval' digunakan dalam tutorial ini untuk menjalankan perintah bash bawaan yang berbeda dan membuat serangkaian variabel. Penggunaan perintah 'eval' akan dihapus untuk pengguna dan mereka akan dapat menggunakan perintah ini untuk berbagai tujuan setelah membaca tutorial ini.