Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • 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

  • Apa itu Game Zenless Zone Zero (ZZZ) HoYoVerse? Ini Cara Mainnya
  • Cuma Kurang 1 Rupiah! Misteri Lucky Draw Akulaku Rp300 Ribu, Bisa Cair Nggak Sih?
  • Video Melolo Cuma Layar Hitam? Ini Trik Ampuh Mengatasinya, Pasti Berhasil!
  • Mau Simpan Video Twitter dan TikTok Tanpa Aplikasi? Begini Cara Praktis Pakai VidsSave!
  • Mau Gaji Dolar? Gini Caranya Tembus Kerja di Australia, Jangan Sampai Salah Visa!
  • Belum Tahu? Inilah Fakta MigoReels, Katanya Nonton Drama Bisa Dapat Rp700 Ribu!
  • Apa Itu Event Invite Friends CapCut? Ini Pengertian dan Cara Kerjanya Biar Cuan
  • Apa Itu MJ di FF? Ini Pengertian, Asal-Usul, dan Risiko di Balik Istilah Tersebut
  • Apa Itu Pengertian Penonaktifan SPayLater? Ini Durasi Blokir Akibat Telat Bayar
  • Apa Itu Rasio Gambar Ukuran 1:1 di Canva? Ini Pengertian dan Cara Buatnya
  • Pengiriman Shopee Express Hemat itu Berapa Lama? Ini Pengertian dan Estimasi Sampainya
  • Android 2025: Aplikasi Baru dan Smartphone Impian yang Akan Datang!
  • Apa Itu Google AI Pro Ultra? Ini Pengertian dan Penjelasan Lengkapnya
  • Apa Itu Error Gagal Kirim Nilai RDM 3.1? Ini Pengertian dan Solusi Mengatasinya
  • Facebook Mulai Batasi Link Eksternal Cuma 2 Sebulan! Ini Trik Mengatasinya
  • Cara Nonton Tensura Season 4! Bakal Tayang April 2026 dengan Format 5 Cour
  • Belum Tahu? Inilah Trik Supaya Live TikTok Kalian Aman dan Banjir Cuan
  • Pixel 8 Dapatkan Mode Panorama Baru! Hasil Foto Lebih Luas & Lebih Kreatif
  • Apa Itu AppLocker? Ini Pengertian dan Cara Mengamankan Windows 11 Kalian dari Skrip Jahat
  • Cara Membuat Riwayat Copilot Kamu Tetap Bersih dan Rapi!
  • Game & Aplikasi Android Terbaik Saat Diskon Liburan Natal! Jangan Ketinggalan!
  • Apa Itu Game Prison Escape Journey? Ini Pengertian dan Cara Mainnya untuk Pemula
  • “Listrik Gratis” dari Solar Panel Cuma Mitos?! Ini Sisi Gelap PLTS
  • Samsung Galaxy Z-Fold: Uji Jatuh Bebas yang Mengguncang Keandalan Lipatannya
  • Google One 2026: Apa yang Akan Jadi Fitur Utama dan Harga yang Diharapkan?
  • Apa Itu Error 0x800704f8? Ini Pengertian dan Cara Mengatasinya
  • Android Akhirnya Dapat GPS Darurat di India! Setelah Hampir 10 Tahun
  • Apa Itu GetContact Premium? Ini Pengertian dan Cara Daftarnya
  • Android Maze Figure: Koleksi Baru Google yang Bikin Penggemar Bergairah!
  • Google Update Besar-besaran Desember 2025: Apa yang Akan Memengaruhi Pengalaman Anda?
  • Apa itu Cosmic Desktop: Pengertian dan Cara Pasangnya di Ubuntu 26.04?
  • Apa Itu Auvidea X242? Pengertian Carrier Board Jetson T5000 dengan Dual 10Gbe
  • Elementary OS 8.1 Resmi Rilis: Kini Pakai Wayland Secara Standar!
  • Apa Itu Raspberry Pi Imager? Pengertian dan Pembaruan Versi 2.0.3 yang Wajib Kalian Tahu
  • Performa Maksimal! Ini Cara Manual Update Ubuntu ke Linux Kernel 6.18 LTS
  • Tutorial RAG: Inilah 7 Repository GitHub Terbaik untuk Membangun Sistem AI Sendiri
  • Begini Cara Menjalankan Notebook Machine Learning di Databricks, Gratis dan Tanpa Ribet!
  • Apa Itu PeakAI? Ini Pengertian dan Cara Menghasilkan Uang dari Kolaborasi TikTok
  • Inilah Cara Ubah Rutinitas Browsing Lebih Produktif dengan Perplexity Comet (AI Browser)
  • Inilah Cara Kuasai Materi Sulit dalam Hitungan Menit Pakai Google NotebookLM: Tutorial Lengkap
  • Apa Itu Raccoon0365? Ini Pengertian dan Bahaya Platform Phishing Microsoft
  • Apa Itu Raccoon Framework? Ini Pengertian dan Asal Usulnya
  • Apa Itu Serangan Phishing OAuth di Microsoft 365? Ini Definisi dan Cara Kerjanya
  • Apa Itu Distribusi Malware Via YouTube? Ini Pengertian dan Bahayanya Buat Kalian
  • Apa Itu Undang-Undang NDAA? Ini Pengertian dan Dampaknya Bagi Cyber Command Amerika Serikat
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ

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