Latihan 1 dari materi Subshells & Process Substitution di Terminal — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Simulasikan perilaku subshell dan process substitution.
1. runInSubshell(parentEnv, task)
Jalankan task dengan salinan parentEnv sebagai env. task(env) boleh memodifikasi env yang diberikan. Return object { parent, child } — parent adalah env asli yang tidak berubah (isolasi), child adalah env hasil setelah task. Kedua object harus terpisah (bukan reference yang sama).
2. runGrouped(parentEnv, task)
Sama seperti runInSubshell TAPI task berjalan di env yang SAMA dengan parent — perubahan diterapkan. Return env yang sudah termodifikasi (object yang sama dengan input).
3. compareOutputs(cmdA, cmdB)
Simulasi diff <(cmdA) <(cmdB) — kedua parameter adalah function yang return string atau array string. Return array baris yang ada di kedua output setelah di-sort (intersection sorted).
Contoh: cmdA=()=>["banana","apple"], cmdB=()=>["cherry","apple"] → ["apple"].