Ketahui Cara Memudahkan Subshell dengan Menggunakan Script Bash

Cara Mengajar Subshells untuk Run Selari dalam Latar Belakang

Kotak adalah antara muka asas untuk memasukkan arahan pada sistem Linux. Dengan itu, anda boleh memasukkan arahan secara langsung atau menentukan fail (skrip) yang mengandungi urutan perintah yang akan dilaksanakan. Kerang disusun dalam hierarki, dan mana-mana cangkang boleh membuat cangkang baru. Cangkang baru dianggap sebagai proses kanak-kanak-kulit kecil-dari cangkang induk yang menciptanya.

Secara lalai, subkelompok bergantung pada induknya dalam arti bahawa jika proses induk menamatkan, subhell juga tamat. Apa-apa keluaran diluluskan dari subkelet ke shell induk.

Cara Mencipta Subshell

Dalam skrip shell Bash, anda mencipta subshell menggunakan notasi kurungan:

#! / bin / bash echo "Sebelum memulakan subshell" (count = 1 sementara [$ count -le 99] lakukan echo "$ count" sleep 1 ((count ++)

Dalam contohnya, gelung sementara dilampirkan dalam kurungan, yang menyebabkannya dilaksanakan dalam kulit bawah shell di mana fail skrip dilaksanakan.

Menjalankan Subshell dalam Latar Belakang

Melainkan jika anda menyatakan bahawa subkelompok itu akan dilaksanakan di latar belakang, shell ibu bapa menunggu subkelupinya selesai sebelum meneruskan dengan skrip lain. Walau bagaimanapun, jika anda ingin menjalankan subshells selari, anda menjalankannya di latar belakang, yang dicapai dengan aksara ampersand berikut ekspresi subshell, seperti ditunjukkan di sini:

#! / bin / bash echo "Sebelum memulakan subshell" (count = 1 sementara [$ count -le 99] lakukan echo "$ count" sleep 1 ((count ++)) selesai) & echo "

Menjalankan Subshell yang Berbilang Selari

Jika anda mencipta subskeks berganda sebagai proses latar belakang, anda boleh menjalankan tugas secara selari. Biasanya, sistem operasi menggunakan pemproses atau teras yang berbeza untuk setiap proses dan subproses, dengan asumsi terdapat sekurang-kurangnya banyak pemproses atau teras kerana terdapat proses. Jika tidak, tugasan diberikan kepada pemproses atau teras yang sama. Dalam hal ini, pemproses atau inti terus beralih antara tugas yang diberikan sehingga tugas selesai. Contoh seterusnya mempunyai dua subproses. Yang pertama adalah dari 1 hingga 99, dan yang kedua dari 1000 hingga 1099.

#! / bin / bash echo "Before starting subshell" (count = 1 while [$ count -le 99] do echo "count count" sleep 1 ((count ++) 1099] lakukan echo "$ count" tidur 1 ((count ++)) selesai) & echo "Selesaikan"

Gunakan kenyataan tunggu untuk memberitahu proses induk untuk menunggu subproses selesai sebelum meneruskan dengan skrip yang lain:

#! / bin / bash echo "Before starting subshell" (count = 1 while [$ count -le 99] do echo "count count" sleep 1 ((count ++) 1099] lakukan echo "count $" tidur 1 ((count ++)) selesai & tunggu echo "Selesaikan"

Kegunaan Subshells

Subseks berguna apabila perintah perlu dilaksanakan dalam persekitaran atau direktori tertentu. Sekiranya setiap perintah dijalankan dalam subkelompok yang berbeza, tidak ada risiko bahawa tetapan pembolehubah akan bercampur. Setelah selesai, tetapan dan direktori semasa tidak perlu dipulihkan, kerana persekitaran proses induk tidak dipengaruhi oleh mana-mana subprosesinya.

Subshells boleh digunakan dalam definisi fungsi supaya mereka boleh dilaksanakan beberapa kali dengan parameter yang berbeza.