Belajar dengan membaca secara berurutan

Shell Script - Variabel dan Substitusi Perintah

Tetapkan dengan name=value dan referensikan dengan "$name", lihat perbedaan ekspansi tanda kutip tunggal dan ganda, jalankan substitusi perintah $(date), lakukan ekspansi aritmatika $(( n * 2 )), dan baca input dengan read — divisualkan dan dipraktikkan di terminal browser.

Memakai Variabel — Menetapkan dan Mereferensikan

Dalam shell script, kamu memberi sebuah nilai sebuah nama dan memakainya ulang sebanyak yang kamu mau.

Kamu menetapkan dengan bentuk name=value, dan kamu tidak boleh menaruh spasi di sekitar =.

Kalau kamu lakukan, itu dibaca sebagai perintah terpisah dan menghasilkan error.

Kamu membaca kembali nilai yang ditetapkan dengan $name atau ${name}.

Kalau ada karakter yang langsung mengikuti $name, itu dianggap bagian dari nama variabel, jadi pakai ${name} untuk menandai batasnya.

Dari penetapan ke referensi
name=alicename berisi nilaiecho "$name"$name diganti nilaimencetak alicepenetapanreferensi
Masukkan nilai dengan name=alice, lalu baca dengan $name untuk memakainya.

Tanda Kutip — Perbedaan Ekspansi Tunggal dan Ganda

Ada dua jenis tanda kutip untuk membungkus string, dan ekspansinya berbeda.

Di dalam tanda kutip tunggal '...', $name dianggap literal dan tidak diekspansi.

Di dalam tanda kutip ganda "...", $name diganti dengan nilainya.

Pakai tanda kutip ganda saat kamu ingin menyelipkan nilai di tengah teks, seperti "Hello $name", dan tanda kutip tunggal saat kamu ingin mencetak $ apa adanya.

Ekspansi kutip tunggal vs ganda
echo '$name'cetak $name (tak ekspansi)echo "$name"cetak alice (diekspansi)
Tanda kutip tunggal mencetak $name apa adanya; tanda kutip ganda menggantinya dengan nilai.
name=alice                       # tanpa spasi di sekitar =
echo "hello $name"               # hello alice (kutip ganda ekspansi)
echo 'hello $name'               # hello $name (kutip tunggal tidak)
echo "path is ${name}/data"      # pakai {} untuk menandai batas nama

Buat script yang menaruh nama pengguna ke dalam variabel dan menunjukkan bagaimana tampilan berubah tergantung tanda kutip.

① Buka quotes.sh dengan vi quotes.sh, tekan i untuk masuk mode insert, dan tulis #!/bin/sh pada baris pertama.

② Di dalam script, tetapkan sebuah nama ke variabel, lalu cetak satu baris dengan tanda kutip ganda ("sapaan + variabel") dan satu baris dengan tanda kutip tunggal dalam bentuk yang sama (kamu bisa menyalin isinya dari panel jawaban dan menempelkannya).

③ Tekan Esc, simpan dan keluar dengan :wq, lalu beri file izin eksekusi.

④ Jalankan script dan pastikan baris kutip ganda dan kutip tunggal tampil berbeda. (Kalau berjalan dengan benar, penjelasan akan muncul.)

Linux console
0 / 3 selesai
Loading Linux Terminal...

Substitusi Perintah — $()

$(command) adalah cara untuk memakai output sebuah perintah sebagai nilai tepat di tempat kamu menuliskannya.

Tulis sesuatu seperti today=$(date +%Y-%m-%d) dan tanggal yang dihasilkan date langsung masuk ke today.

Kamu memakainya untuk menangkap hasil perintah ke dalam variabel atau menyelipkannya di tengah teks.

Alur substitusi perintah
$(date)2026-06-18today=$(date)diganti oleh outputtoday=2026-06-18jalankan datesubstitusi perintahpenetapan
$(date) diganti oleh output dari menjalankan date, dan today=$(date) memasukkan nilai itu ke dalam variabel.
today=$(date +%Y-%m-%d)          # tangkap output date ke variabel
echo "today is $today"           # selipkan nilai yang ditangkap ke teks
user=$(whoami)                   # output perintah lain juga bisa jadi nilai
echo "user: $user"

Buat script yang menangkap output sebuah perintah ke dalam variabel dengan substitusi perintah $() dan menyelipkannya ke sebuah pesan.

① Buka datestamp.sh dengan vi datestamp.sh, tekan i untuk masuk mode insert, dan tulis #!/bin/sh pada baris pertama.

② Di dalam script, tangkap output date ke dalam variabel dengan substitusi perintah $(), lalu selipkan variabel itu ke dalam string berkutip ganda dan cetak dalam satu baris (kamu bisa menyalin isinya dari panel jawaban dan menempelkannya).

③ Tekan Esc, simpan dan keluar dengan :wq, lalu beri file izin eksekusi.

④ Jalankan script dan pastikan sebuah pesan yang memuat tanggal ditampilkan.

Linux console
0 / 3 selesai
Loading Linux Terminal...

Ekspansi Aritmatika — $(( ))

Di dalam $(( )) adalah aritmatika bilangan bulat.

$(( 3 + 4 )) diganti dengan 7.

Kamu bisa pakai + untuk menambah, - untuk mengurangi, * untuk mengali, / untuk membagi, dan % untuk sisa bagi.

Variabel masuk tanpa $, ditulis langsung dengan nama seperti $(( n * 2 )).

Cara kerja ekspansi aritmatika
$(( 3 + 4 ))evaluasi= 7n=5$(( n * 2 ))= 10
Ekspresi di dalam $(( )) dievaluasi: $(( 3 + 4 )) adalah 7, dan dengan n=5 maka $(( n * 2 )) adalah 10.
echo "sum: $(( 10 + 5 ))"        # menambah menghasilkan 15
n=7
echo "double: $(( n * 2 ))"      # variabel masuk tanpa $
echo "rest: $(( 17 % 5 ))"        # sisa bagi dengan % adalah 2

Buat script yang melakukan aritmatika bilangan bulat dengan ekspansi aritmatika $(( )).

① Buka calc.sh dengan vi calc.sh, tekan i untuk masuk mode insert, dan tulis #!/bin/sh pada baris pertama.

② Di dalam script, tetapkan dua angka ke variabel, pakai $(( )) untuk melakukan beberapa perhitungan seperti jumlah, hasil kali, dan sisa bagi, lalu cetak hasilnya dalam satu baris (kamu bisa menyalin isinya dari panel jawaban dan menempelkannya).

③ Tekan Esc, simpan dan keluar dengan :wq, lalu beri file izin eksekusi.

④ Jalankan script dan pastikan hasil perhitungan ditampilkan.

Linux console
0 / 3 selesai
Loading Linux Terminal...

Menerima Input — read

read v membaca satu baris input dan menaruhnya ke dalam variabel v.

Kamu memakainya saat ingin meminta sebuah nilai dari pengguna di dalam script.

Di konsol kursus ini, mengalirkan input lewat pipe, seperti printf 'value\n' | ./greet.sh, berjalan dengan andal.

Mencetak prompt dengan echo sebelum read membuat lebih jelas apa yang harus diketik.

Menerima input dengan read
echo "enter:"tampilkan prompttunggu inputalirkan nilai via piperead nn=7
read n membaca satu baris dan menaruhnya ke n. Mengalirkan nilai lewat pipe dengan printf menyampaikannya ke read tanpa mengetik manual.
echo "enter your name:"          # minta apa yang harus diketik
read who                         # baca satu baris ke who
echo "hi, $who"                  # selipkan nilai yang diterima ke teks
printf 'bob\n' | (read who; echo "hi, $who")   # input bisa datang dari pipe juga

Buat script yang membaca satu baris input dengan read dan menyelipkannya ke dalam sebuah sapaan.

① Buka greet.sh dengan vi greet.sh, tekan i untuk masuk mode insert, dan tulis #!/bin/sh pada baris pertama.

② Di dalam script, tampilkan prompt dengan echo, baca satu baris untuk nama dengan read, lalu selipkan nama itu ke dalam sapaan berkutip ganda dan cetak (kamu bisa menyalin isinya dari panel jawaban dan menempelkannya).

③ Tekan Esc, simpan dan keluar dengan :wq, lalu beri file izin eksekusi.

④ Jalankan script dengan input dialirkan lewat pipe, dan pastikan sebuah sapaan yang memuat nama yang kamu masukkan ditampilkan.

Linux console
0 / 3 selesai
Loading Linux Terminal...

Menyelipkan Jumlah ke Pesan dengan Substitusi Perintah

Substitusi perintah $() sering dipakai untuk menangkap sebuah "hasil hitungan", seperti jumlah file, ke dalam variabel.

Tulis sesuatu seperti n=$(ls *.txt | wc -l) dan hasil gabungan ls dan wc -l masuk ke n.

Selipkan variabel itu ke dalam string berkutip ganda dan kamu bisa menyusun pesan satu baris yang mudah dibaca yang memuat jumlahnya.

Menyelipkan jumlah ke pesan
ls vdemo/*.txtcount = 2n=$( ... )selipkan $n ke tekstxt files: 2hitung dengan wc -lhitung fileselipkan ke pesan
Jumlah dari ls dan wc -l masuk ke n via substitusi perintah, dan menyelipkannya ke teks menampilkan txt files: 2.

Buat script yang menangkap jumlah file teks ke dalam variabel dengan substitusi perintah dan menampilkannya tersisip dalam sebuah pesan.

① Sebagai bahan untuk dihitung, buat direktori kerja dengan mkdir -p vdemo dan buat dua file .txt, seperti printf 'a\n' > vdemo/a.txt.

② Buka count-txt.sh dengan vi count-txt.sh, tekan i untuk masuk mode insert, dan tulis #!/bin/sh pada baris pertama.

③ Di dalam script, tangkap jumlah file .txt di vdemo ke dalam variabel dengan substitusi perintah, lalu selipkan variabel itu ke dalam string berkutip ganda dan tampilkan sebuah pesan dengan jumlahnya (kamu bisa menyalin isinya dari panel jawaban dan menempelkannya).

④ Tekan Esc, simpan dengan :wq, beri izin eksekusi, lalu jalankan dan pastikan sebuah pesan yang memuat jumlah ditampilkan.

Linux console
0 / 3 selesai
Loading Linux Terminal...
QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Mana cara yang benar untuk menetapkan ke sebuah variabel shell?

Soal 2Bagaimana echo '$name' ditampilkan (saat name=alice)?

Soal 3Mana cara yang menaruh output sebuah perintah ke dalam variabel sebagai nilai?