Diajar kumaha kuduna Run Subshells Maké Aksara Bash

Kumaha carana ngalatih Subshells mun Jalankeun di Parallel di Latar nu

Hiji cangkang mangrupakeun panganteur dasar pikeun ngasupkeun paréntah kana sistem Linux. Kalawan eta, anjeun bisa ngasupkeun paréntah mangrupa langsung atanapi tangtukeun file (Aksara) nu ngandung hiji sekuen Paréntah bisa dieksekusi. Cangkang anu dikelompokeun dina hirarki, sarta sagala cangkang bisa nyieun cangkang anyar. Cangkang anyar dianggap proses-anak subshell-indungna cangkang nu nyiptakeun eta.

Sacara standar, subshell hiji gumantung indung na dina pengertian yén lamun proses indungna terminates, subshell ogé terminates. Sagala kaluaran disalurkeun ti subshell kana cangkang indungna.

Kumaha Jieun Subshell

Dina Aksara Bash cangkang, Anjeun nyieun hiji subshell ngagunakeun notasi parenthesis:

#! / Bin / bash bahana "Sateuacan ngawitan subshell" (cacah = 1 bari [$ cacah -le ​​99] ulah bahana "$ count" sare 1 ((cacah ++)) rengse) bahana "Réngsé"

Dina conto éta, anu loop bari geus enclosed di parenthesis, nu ngabalukarkeun eta bisa dieksekusi dina subshell tina cangkang numana file Aksara ieu dibales.

Ngajalankeun hiji Subshell di Latar nu

Iwal mun nangtukeun yén subshell téh kudu dibales di latar tukang, cangkang indungna waits pikeun subshell ka rengse sateuacan neraskeun kalawan sesa naskah. Sanajan kitu, lamun rék ngajalankeun subshells di paralel, anjeun ngajalankeun aranjeunna di tukang, nu geus dilakonan jeung karakter ampersand handap babasan subshell, sakumaha ditémbongkeun di dieu:

#! / Bin / bash bahana "Sateuacan ngawitan subshell" (cacah = 1 bari [$ cacah -le ​​99] do bahana "$ count" sare 1 ((cacah ++)) rengse) & bahana "Réngsé"

Ngajalankeun langkung Subshells di Parallel

Lamun nyieun sababaraha subshells salaku tukang prosés , anjeun tiasa ngajalankeun tugas di paralel. Ilaharna, sistem operasi migunakeun prosesor atanapi cores béda pikeun unggal prosés na subprocess, asumsina aya sahanteuna saloba prosesor atanapi cores sakumaha aya prosés. Upami teu kitu, tugas anu ditugaskeun ka prosesor sarua atawa cores. Dina kasus eta, prosesor atawa core terus pindah antara tugas ditugaskeun dugi tugas téh réngsé. Conto hareup boga dua subprocesses. Hiji mimiti diitung ti 1 nepi ka 99, sarta hiji detik 1000 nepi 1099.

#! / Bin / bash bahana "Sateuacan ngawitan subshell" (cacah = 1 bari [$ cacah -le ​​99] do bahana "$ count" sare 1 ((cacah ++)) rengse) & (cacah = 1000 bari [$ count -le 1099] do bahana "$ count" sare 1 ((cacah ++)) rengse) & bahana "réngsé"

Nganggo nungguan pernyataan mun nyaritakeun prosés indungna ngadagoan subprocesses nepi ka rengse sateuacan lajengkeun jeung sésana naskah:

#! / Bin / bash bahana "Sateuacan ngawitan subshell" (cacah = 1 bari [$ cacah -le ​​99] do bahana "$ count" sare 1 ((cacah ++)) rengse) & (cacah = 1000 bari [$ count -le 1099] do bahana "$ count" sare 1 ((cacah ++)) rengse) & antosan bahana "réngsé"

Mangpaat pikeun Subshells

Subshells nu mangpaat nalika Paréntah perlu dieksekusi dina lingkungan atawa diréktori husus. Mun tiap paréntah geus dieksekusi dina subshell béda, taya résiko anu setélan variabel bakal dicampurkeun up. Dina parantosan, setélan jeung diréktori ayeuna teu perlu dibalikeun, sakumaha lingkungan tina prosés indungna henteu kapangaruhan ku salah sahiji subprocesses na.

Subshells bisa dipaké dina definisi fungsi ambéh maranéhanana bisa dieksekusi sababaraha kali mibanda parameter béda.