Sinau Cara Bener Run Subshells Nggunakake Script Bash

Cara Nggarap subshells kanggo Run ing Paralel ing Background

Cangkang minangka antarmuka dasar kanggo ngetik perintah ing sistem Linux. Karo, sampeyan bisa ngetik perintah langsung utawa nemtokake file (script) sing ngemot urutan perintah sing bakal dileksanakake. Kerang diorganisasikake ing hirarki, lan saben cangkang bisa nggawe cangkang anyar. Cangkang anyar dianggep minangka proses anak-yaiku subshell-saka cangkang induk sing nggawe.

Secara default, subshell gumantung ing tiyang sepahipun ing pangertosan bilih manawi proses tiyang sepuh dipungkasi, subshell uga nanggepi. Saben output diuripake saka subshell menyang cangkang induk.

Carane Nggawe Subshell

Ing skrip cangkang Bash, sampeyan nggawe subshell nggunakake notep tanda kurung:

#! / bin / bash echo "Sadurunge miwiti subshell" (count = 1 nalika [$ count -le 99] aja echo "$ count" turu 1 ((count ++)

Contone, daur ulang wektu ditempelake ing penthung, sing nyebabake bisa dieksekusi ing cangkang kabutuhan ing endi file script dieksekusi.

Muter subshell ing latar mburi

Yen sampeyan nemtokake manawa subshell bakal dileksanakake ing latar mburi, cangkang induk ngenteni subshell rampung sadurunge terus nganggo sisa script. Nanging, yen sampeyan pengin mbukak subshells kanthi cetha, sampeyan mbukak ing latar mburi, sing disampurnakake karo karakter ampersand ing ngisor iki ekspresi subshell, kaya sing katon ing kene:

#! / bin / bash echo "Sadurunge miwiti subshell" (count = 1 nalika [$ count -le 99] aja echo "$ count" turu 1 ((count ++)

Running Multiple Subshells in Parallel

Yen sampeyan nggawe macem-macem subhells minangka latar mburi pangolahan , sampeyan bisa mbukak tugas ing podo karo. Biasane, sistem operasi nggunakake prosesor utawa inti sing beda kanggo saben proses lan subprocess, kanthi asumsi ana paling ora minangka akeh prosesor utawa intine kayata ana proses. Yen ora, tugas ditugasake menyang prosesor utawa intine sing padha. Ing kasus kasebut, prosesor utawa inti terus dioperasikake antarane tugas sing ditugasake nganti tugas rampung. Conto liyane nduweni rong subproses. Sing nomer siji saka 1 nganti 99, lan nomer loro saka 1000 nganti 1099.

#! / bin / bash echo "Sadurunge miwiti subshell" (count = 1 nalika [$ count -le 99] aja echo "count" 1099] aja echo "count" turu 1 ((count ++)) rampung & echo "Rampung"

Gunakake tunggu tunggu kanggo nyaritakake proses induk kanggo ngenteni subproses rampung sadurunge nglajengake sisa naskah:

#! / bin / bash echo "Sadurunge miwiti subshell" (count = 1 nalika [$ count -le 99] aja echo "count" 1099] aja echo "count" turu 1 ((count ++)) rampung) & ngenteni echo "Rampung"

Migunakake kanggo Subshells

Subshells migunani nalika perintah kudu dieksekusi ing lingkungan utawa direktori tartamtu. Yen saben perintah dieksekusi ing subshell sing beda, ora ana risiko yen setelan variabel bakal dicampurake. Sawise rampung, setelan lan direktori saiki ora kudu dibalekake, amarga lingkungan proses induk ora kena pengaruh subprocesses.

Subshells bisa digunakake ing definisi fungsi supaya bisa dieksekusi kaping pirang-pirang karo parameter sing beda.