Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Makalah
  • Ke-NU-an
  • Kabar
  • Search
Menu

Cara Menggunakan eval di Linux Bash Script

Posted on August 22, 2022

Dari semua perintah Bash, eval lama yang malang mungkin memiliki reputasi terburuk. Dibenarkan, atau hanya pers yang buruk? Kami membahas penggunaan dan bahaya dari perintah Linux yang paling tidak disukai ini.

Kita Perlu Bicara Tentang eval

Digunakan secara sembarangan, eval dapat menyebabkan perilaku yang tidak terduga dan bahkan ketidakamanan sistem. Dari suaranya, kita mungkin tidak boleh menggunakannya, kan? Yah tidak cukup.

Anda bisa mengatakan hal serupa tentang mobil. Di tangan yang salah, mereka adalah senjata mematikan. Orang-orang menggunakannya dalam ram-razia dan sebagai kendaraan untuk melarikan diri. Haruskah kita semua berhenti menggunakan mobil? Tidak, tentu saja tidak. Tetapi mereka harus digunakan dengan benar, dan oleh orang-orang yang tahu cara mengemudikannya.

Kata sifat yang biasa diterapkan pada eval adalah “jahat.” Tapi itu semua bermuara pada bagaimana itu digunakan. Perintah eval menyusun nilai dari satu atau beberapa variabel. Ini menciptakan string perintah. Kemudian menjalankan perintah itu. Hal ini berguna saat Anda perlu mengatasi situasi saat konten perintah diturunkan secara dinamis selama eksekusi skrip Anda.

Masalah muncul saat skrip ditulis untuk menggunakan eval pada string yang telah diterima dari suatu tempat di luar skrip. Ini dapat diketik oleh pengguna, dikirim melalui API, ditandai ke permintaan HTTPS, atau di mana pun di luar skrip.

Jika string yang akan dikerjakan eval tidak diturunkan secara lokal dan terprogram, ada risiko bahwa string mungkin berisi instruksi berbahaya yang disematkan atau input yang dibuat dengan buruk. Jelas, Anda tidak ingin eval menjalankan perintah jahat. Jadi untuk amannya, jangan gunakan eval dengan string yang dibuat secara eksternal atau input pengguna.

Langkah Pertama Dengan eval

Perintah eval adalah perintah shell Bash bawaan. Jika Bash hadir, eval akan hadir.

eval menggabungkan parameternya menjadi satu string. Ini akan menggunakan satu ruang untuk memisahkan elemen gabungan. Ini mengevaluasi argumen dan kemudian meneruskan seluruh string ke shell untuk dieksekusi.

Mari buat variabel bernama wordcount.

wordcount=”wc -w raw-notes.md”

Variabel string berisi perintah untuk menghitung kata dalam file bernama “ raw-notes.md.”

Kita dapat menggunakan eval untuk mengeksekusi perintah itu dengan meneruskannya nilai variabel.

eval”$wordcount”

Perintah dijalankan di shell saat ini, bukan di subkulit. Kita dapat dengan mudah menunjukkan ini. Kami memiliki file teks pendek yang disebut “variables.txt.” Ini berisi dua baris ini.

first=How-To second=Geek

Kami akan menggunakan cat untuk mengirim baris ini ke jendela terminal. Kemudian kita akan menggunakan eval untuk mengevaluasi perintah cat sehingga instruksi di dalam file teks ditindaklanjuti. Ini akan mengatur variabel untuk us.

cat variabel.txt eval “$(cat variabel.txt)” echo $first $second

Dengan menggunakan echo untuk mencetak nilai variabel kita dapat melihat bahwa perintah eval berjalan di shell saat ini, bukan a proses subshell.

A dalam subkulit tidak dapat mengubah lingkungan shell induknya. Karena eval berjalan di shell saat ini, variabel yang ditetapkan oleh eval dapat digunakan dari shell yang meluncurkan perintah eval.

Perhatikan bahwa jika Anda menggunakan eval dalam skrip, shell yang akan diubah oleh eval adalah subkulit yang menjalankan skrip di, bukan shell yang meluncurkannya.

Menggunakan Variabel dalam Perintah String

Kita dapat memasukkan variabel lain dalam string perintah. Kami akan menetapkan dua variabel untuk menampung integer.

num1=10 num2=7

Kami akan membuat variabel untuk menampung perintah expr yang akan mengembalikan jumlah dua angka. Ini berarti kita perlu mengakses nilai dari dua variabel integer dalam perintah. Perhatikan tanda centang di sekitar pernyataan expr.

add=”`expr $num1 + $num2`”

Kita akan membuat perintah lain untuk menunjukkan kepada kita hasil dari pernyataan expr.

show=”echo”

Perhatikan bahwa kita tidak perlu menyertakan spasi di akhir string gema, atau di awal string expr. eval menangani itu.

Dan untuk menjalankan seluruh perintah yang kita gunakan:

eval $show $add

Nilai variabel di dalam string expr diganti ke dalam string dengan eval , sebelum diteruskan ke shell untuk dieksekusi.

Accessing Variables Inside Variables

Anda dapat menetapkan nilai ke variabel, dan kemudian menetapkan nama variabel itu ke variabel lain. Dengan menggunakan eval, Anda dapat mengakses nilai yang disimpan di variabel pertama, dari namanya yang merupakan nilai yang disimpan di variabel kedua. Sebuah contoh akan membantu Anda menguraikan itu.

Salin skrip ini ke editor, dan simpan sebagai file bernama “assign.sh.”

#!/bin/bash title=”How-To Geek” pages=title command=”echo ” eval $command ${$webpage}

Kita perlu membuatnya dapat dieksekusi dengan perintah chmod.

chmod +x assign.sh

Anda harus melakukan ini untuk skrip apa pun yang Anda salin dari artikel ini. Cukup gunakan nama skrip yang sesuai di setiap kasus.

Ketika kami menjalankan skrip kami, kami melihat teks dari judul variabel meskipun perintah eval menggunakan halaman web variabel.

./assign.sh

Tanda dolar yang lolos “$” dan kurung ” {}” menyebabkan eval untuk melihat nilai yang disimpan di dalam variabel yang namanya disimpan di variabel halaman web.

Menggunakan Variabel yang Dibuat Secara Dinamis

Kita bisa menggunakan eval untuk membuat variabel secara dinamis. Skrip ini disebut “loop.sh.”

#!/bin/bash total=0 label=”Looping complete. Total:” for n in {1..10} do eval x$n=$n echo “Loop” $x$n ((total+=$x$n)) done echo $x1 $x2 $x3 $x4 $x5 $x6 $x7 $x8 $x9 $x10 echo $label $total

Ini membuat variabel yang disebut total yang menampung jumlah dari nilai variabel yang kita buat. Kemudian membuat variabel string yang disebut label. Ini adalah string teks sederhana.

Kita akan mengulang 10 kali dan membuat 10 variabel yang disebut x1 hingga x10. Pernyataan eval di badan loop menyediakan “x” dan mengambil nilai penghitung loop $n untuk membuat nama variabel. Pada saat yang sama, ia menetapkan variabel baru ke nilai penghitung loop $n.

It mencetak variabel baru ke jendela terminal dan kemudian menambahkan variabel total dengan nilai variabel baru .

Di luar loop, 10 variabel baru dicetak sekali lagi, semuanya dalam satu baris. Perhatikan bahwa kita dapat merujuk ke variabel dengan nama aslinya juga, tanpa menggunakan versi yang dihitung atau diturunkan dari namanya.

Terakhir, kita mencetak nilai variabel total.

./loop.sh

Using eval Dengan Arrays

Bayangkan skenario di mana Anda memiliki skrip yang berjalan lama dan melakukan beberapa pemrosesan untuk Anda. Itu menulis ke file log dengan nama yang dibuat dari cap waktu. Kadang-kadang, itu akan memulai file log baru. Ketika skrip selesai, jika tidak ada kesalahan, itu menghapus file log yang telah dibuatnya.

Anda tidak ingin hanya rm *.log, Anda hanya ingin menghapus file log yang telah dibuatnya. Script ini mensimulasikan fungsionalitas itu. Ini adalah “clear-logs.sh.”

#!/bin/bash mendeklarasikan -a logfiles filecount=0 rm_string=”echo” function create_logfile() { ((++filecount)) filename=$(date +”%Y -%m-%d_%H-%M-%S”).log logfiles[$filecount]=$filename echo $filecount “Dibuat” ${logfiles[$filecount]} } # isi skrip. Beberapa pemrosesan dilakukan di sini yang # secara berkala menghasilkan file log. Kami akan mensimulasikan create_logfile sleep 3 create_logfile sleep 3 create_logfile sleep 3 create_logfile # apakah ada file yang harus dihapus? untuk ((berkas=1; berkas

Itulah berita seputar Cara Menggunakan eval di Linux Bash Script, semoga bermanfaat. Disadur dari HowToGeek.com.

Terbaru

  • Cara Menggunakan Stellarium Web
  • Cara Menghapus Data KTP Pribadi di Pinjol yang Belum Lunas
  • Cara Mengganti Nomor TikTok yang Tidak Aktif atau Hilang Tanpa Verifikasi
  • Cara Menggunakan BCA PayLater Terbaru 2025
  • Cara Mendapatkan IMPoint Indosat IM3 Ooredoo Gratis via MyIM3
  • Apa Arti TikTok ‘Shared With You’?
  • Cara Menghapus Data KTP di Pinjol: Panduan Lengkap
  • Cara Download WhatsApp GB Terbaru 2025 – Fitur Lengkap & Aman
  • Review WhatsApp Beta: Apakah Aman? Cara Instal dan Cara Keluar
  • Bebong: Makna, Asal Usul, dan Penggunaan dalam Bahasa Indonesia
  • Spinjam dan Spaylater: Apa yang Terjadi Jika Terlambat Membayar dan Bisakah Meminjam Lagi?
  • Cara Download dan Menonton Dood Stream Tanpa Iklan – Doods Pro
  • Cara Menghentikan dan Mengatasi Pinjol Ilegal
  • Kode Bank BRI untuk Transfer ke PayPal
  • Cara Menyadap WhatsApp Tanpa Aplikasi dan Kode QR
  • Apa yang Terjadi Jika Telat Bayar Shopee PayLater?
  • Telat Bayar Listrik 1 Hari: Apa yang Terjadi?
  • Cara Mengunduh Foto Profil WhatsApp Teman di Android, iPhone, dan PC/Mac
  • Rekomendasi Aplikasi Edit Foto Ringan Terbaik untuk PC Windows dan macOS
  • Cara Membeli Diamond Mobile Legends Menggunakan Pulsa Telkomsel
  • Tutorial Menggunakan Aplikasi Dana: Cara Top Up Dana dengan Mudah, Cepat, dan Murah untuk Pemula
  • Website Konverter YouTube ke MP3 Terbaik 2025
  • Cara Mengatasi Otorisasi Kadaluarsa Higgs Domino Tanpa Login Facebook
  • Tips Main E-Football 2024: Strategi Pemilihan Tim dan Pemain Terbaik
  • DramaQ: Situs Nonton Drakor Sub Indo Terbaru dan Lengkap
  • IGLookup: Cara Download APK dan Informasi Lengkap
  • Cara Daftar DrakorID? Apakah DrakorID Streaming Penipu/Ilegal?
  • Cara Login, Register, dan Transfer Data MyKONAMI
  • Website PT Melia Sehat Sejahtera Apakah Penipuan?
  • Alternatif APK Bling2: Alternatif Stylish untuk Ekspresi Diri
  • Cara Menggunakan Stellarium Web
  • Cara Menghapus Data KTP Pribadi di Pinjol yang Belum Lunas
  • Cara Mengganti Nomor TikTok yang Tidak Aktif atau Hilang Tanpa Verifikasi

©2025 emka.web.id | Design: Newspaperly WordPress Theme