Perintah Linux

Perintah Bash eval

Perintah Bash eval
Perintah 'eval' digunakan dalam bash untuk melaksanakan argumen seperti perintah shell. Hujah digabungkan dalam tali dan diambil sebagai input untuk perintah shell untuk melaksanakan perintah tersebut. 'eval' melaksanakan perintah dalam cengkerang semasa. Perintah ini berguna apabila memerlukan untuk melaksanakan perintah yang mengandungi operator khas atau kata kunci yang dikhaskan. Perintah ini dapat digunakan dalam skrip mana pun di mana nama pemboleh ubah tidak diketahui hingga menjalankan skrip. Tutorial ini akan membantu pengguna Linux untuk mempelajari penggunaan perintah ini.

Sintaks:

eval [hujah…]

Di sini, argumen diuraikan dan digabungkan menjadi rentetan yang akan dijalankan oleh cangkang. 'eval' mengembalikan kod status keluar setelah melaksanakan perintah. 'eval' mengembalikan 0 sebagai kod status keluar jika tiada argumen diberikan atau hanya argumen nol yang diberikan.

Contoh-1: Jalankan perintah 'wc' menggunakan 'eval'

Katakan fail teks bernama "jabatan.txt”Mengandungi teks berikut. Jumlah baris fail dapat dihitung dengan perintah 'wc'.

jabatan.txt

CSE
EEE
ETE
BAHASA INGGERIS
BBA
FARMASI

Perintah berikut akan menyimpan perintah 'wc' untuk mengira jumlah baris nombor fail, jabatan.txt kepada pemboleh ubah, $ mycommand.

$ mycommand = "wc -l jabatan.txt "

Perintah 'eval' berikut akan menjalankan perintah 'wc' dan mencetak jumlah baris.

$ eval $ mycommand

Pengeluaran:

Hasilnya menunjukkan bahawa jabatan.txt fail mempunyai 6 baris.

Examplel-2: Jalankan arahan 'expr' menggunakan 'eval'

Buat fail bash bernama paling tinggi.sh dan tambahkan skrip berikut. Skrip ini akan memberikan dua nilai integer ke dalam pemboleh ubah $ x dan $ y. Perintah 'expr' dan 'echo' ditugaskan ke dalam dua pemboleh ubah, $ c1 dan $ c2 yang dilaksanakan kemudian dengan menggunakan perintah 'eval'.

paling tinggi.sh

#!/ bin / bash
# Memulakan pemboleh ubah x dan y
x = 5
y = 15
# Pemboleh ubah perintah pertama digunakan untuk menetapkan perintah 'expr' untuk menambahkan nilai $ x dan $ y
c1 = "'expr $ x + $ y'"
# Pemboleh ubah arahan kedua digunakan untuk menetapkan perintah 'echo'
c2 = "gema"
# 'eval' akan mengira dan mencetak jumlah $ x dan $ y dengan melaksanakan perintah $ c1
dan pemboleh ubah $ c2
eval $ c2 $ c1

Jalankan skrip.

$ bash paling tinggi.sh

Jumlah 5 dan 15 adalah 20 yang ditunjukkan dalam output.

Contoh-3: Mencetak nilai pemboleh ubah yang diberikan dalam pemboleh ubah lain

Buat skrip bash bernama evaltest2.sh dengan skrip berikut. Di sini, satu pemboleh ubah digunakan untuk menetapkan nama pemboleh ubah lain yang mengandungi data rentetan. Perintah 'eval' akan mencetak nilai pemboleh ubah yang mengandungi nama pemboleh ubah lain sebagai kandungan.

evaltest2.sh

#!/ bin / bash
# Tetapkan nilai rentetan ke dalam pemboleh ubah, $ str1
str1 = "Skrip Shell"
# Tetapkan nama pemboleh ubah, "str1" kepada pemboleh ubah $ str2
str2 = str1
# Simpan perintah ke dalam pemboleh ubah, perintah $
perintah = "gema"
Perintah # 'eval' akan melaksanakan perintah 'echo' dan mencetak nilai pemboleh ubah
yang mengandungi pemboleh ubah lain
eval $ command \ $ $ str2

Jalankan skrip.

$ bash evaltest2.sh

Nilai pemboleh ubah, $ str1 dicetak.

Terdapat cara lain untuk mengakses nilai pemboleh ubah yang namanya adalah nilai pemboleh ubah lain. Menggunakan '!'simbol nilai pemboleh ubah jenis ini dapat diakses. Perintah berikut dapat digunakan sebagai alternatif dari skrip sebelumnya dan outputnya akan sama.

$ str1 = "Skrip Shell"; str2 = str1; arahan = "echo"; eval $ perintah $ !str2

Contoh-4: Buat rangkaian pemboleh ubah dengan nilai dan hitung jumlah nilai menggunakan perintah 'eval'

Buat skrip bash bernama evaltest3.sh dan tambahkan skrip berikut. Skrip ini akan membuat rangkaian pemboleh ubah dan menyimpan nilai ke dalam pemboleh ubah menggunakan perintah 'eval'. Nilai pemboleh ubah akan ditambah dan disimpan ke dalam pemboleh ubah bernama $ sum. Seterusnya, perintah 'echo' dengan nilai string ditugaskan ke dalam pemboleh ubah yang digunakan dalam perintah 'eval' untuk mencetak nilai pemboleh ubah $ sum.

evaltest3.sh

#!/ bin / bash
# Permulaan jumlah $ pembolehubah dengan nilai 0
jumlah = 0
# Nyatakan gelung untuk yang akan berulang selama 4 kali
untuk n dalam 1… 4
buat
# Buat empat pemboleh ubah menggunakan perintah eval
eval x $ n = $ n
# Tambahkan nilai pemboleh ubah dengan jumlah $
jumlah = $ (($ jumlah + $ x $ n))
selesai
# Tetapkan arahan 'echo' dengan rentetan menjadi pemboleh ubah
command = "echo 'Hasil jumlah ='"
Perintah # 'eval' mencetak nilai jumlah menggunakan pemboleh ubah
eval $ perintah $ jumlah

Jalankan skrip.

$ bash evaltest3.sh

Jumlah empat pemboleh ubah ialah, 1 + 2 + 3 + 4 = 10 yang dicetak.

Contoh-5: Menggunakan arahan 'eval' untuk membuang senarai fail

Buat fail bash bernama evaltest4.sh dengan skrip berikut. Skrip ini akan membaca tiga argumen baris perintah sebagai nama fail yang akan dikeluarkan dan menyimpan nilai argumen ke dalam pemboleh ubah larik, $ fn. Perintah 'rm' disimpan dalam pemboleh ubah, perintah $. Untuk loop dinyatakan di sini untuk mengambil setiap nama fail dan membuang fail menggunakan perintah 'eval' jika fail tersebut ada.

evaltest4.sh

#!/ bin / bash
#Menyatakan array
menyatakan -A fn
# Baca tiga argumen baris perintah dan simpan menjadi tiga indeks larik
fn [0] = $ 1
fn [1] = $ 2
fn [2] = $ 3
# Simpan arahan hapus ke dalam pemboleh ubah
perintah = "rm"
# untuk gelung akan berulang selama tiga kali untuk membaca tiga elemen array
untuk indeks dalam 0 1 2
buat
# Periksa fail ada atau tidak wujud
jika [[-f $ fn [$ index]]]; kemudian
# jika fail itu ada maka hapus fail tersebut
eval $ command $ fn [$ index]
# Maklumkan kepada pengguna bahawa fail tersebut dikeluarkan
echo "$ fn [$ index] dihapuskan."
Lain
#Informasikan kepada pengguna bahawa fail tersebut tidak ada
echo "$ fn [$ index] tidak wujud."
fi
selesai

Jalankan skrip.

$ bash evaltest4.tanda sh.item docx.produk txt.docx

Di sini, tiga nama fail disediakan pada masa melaksanakan skrip. Output menunjukkan bahawa tanda.docx dan produk.docx ada di lokasi semasa dan fail dikeluarkan dan, item.txt tidak wujud di lokasi semasa.

Kesimpulannya

Sebarang arahan bash dapat dijalankan dengan perintah 'eval' dengan menyatakan sebagai string. Perintah 'eval' digunakan dalam tutorial ini untuk melaksanakan perintah bash yang berbeza dan membuat serangkaian pemboleh ubah. Penggunaan arahan 'eval' akan dihapus untuk pengguna dan mereka akan dapat menggunakan perintah ini untuk pelbagai tujuan setelah membaca tutorial ini.

Tambahkan isyarat Tetikus ke Windows 10 menggunakan alat percuma ini
Dalam beberapa tahun kebelakangan ini komputer dan sistem operasi telah banyak berkembang. Ada saat ketika pengguna harus menggunakan perintah untuk m...
Mengawal & menguruskan pergerakan tetikus antara beberapa monitor di Windows 10
Pengurus Tetikus Paparan Dwi membolehkan anda mengawal & mengkonfigurasi pergerakan tetikus antara beberapa monitor, dengan memperlahankan pergerakann...
WinMouse membolehkan anda menyesuaikan & meningkatkan pergerakan penunjuk tetikus pada PC Windows
Sekiranya anda ingin meningkatkan fungsi lalai penunjuk tetikus anda gunakan perisian percuma WinMouse. Ia menambah lebih banyak ciri untuk membantu a...