Contoh Berbeza Subkulit
Cara yang berbeza untuk melaksanakan skrip dalam subkulit ditunjukkan dalam bahagian tutorial ini.
Contoh 1: Laksanakan Subkulit Menggunakan Petikan Tunggal dan Petikan Berganda
Buat fail Bash dengan skrip berikut yang mencetak tarikh dan masa semasa. Seterusnya, pembolehubah $strVal dicetak dengan melampirkan skrip subkulit dalam petikan tunggal dan petikan berganda.
#!/bin/bash
#Cetak arahan `tarikh` dalam subkulit
bergema 'Hari ini adalah `tarikh` '
#Tentukan pembolehubah rentetan
strVal = 'Bash Subshell'
#Cetak pembolehubah dalam subkulit menggunakan petikan tunggal
bergema 'Keluaran petikan tunggal:' '$(echo $strVal)'
#Cetak pembolehubah dalam subkulit menggunakan petikan berganda
bergema 'Keluaran petikan berganda:' ' $(gema $strVal) '
Output berikut muncul selepas melaksanakan skrip. Skrip subkulit dicetak sebagai rentetan apabila ia disertakan dengan petikan tunggal. Skrip subkulit dilaksanakan apabila ia disertakan dengan petikan berganda:
Contoh 2: Cari Semua Fail Sambungan Tertentu Menggunakan Subkulit
Buat fail Bash dengan skrip berikut yang mengambil sambungan fail sebagai input daripada pengguna. Seterusnya, arahan 'ls' dilaksanakan dalam subkulit untuk mencari semua fail sambungan tertentu itu.
#!/bin/bash
bergema -n 'Masukkan nama sambungan fail:'
#Ambil nama sambungan fail yang akan dicari
membaca samb
#Semak nilai input
jika [ [ $ext == '' ] ] ; kemudian
#Cetak mesej ralat
bergema 'Tiada lanjutan diberikan.'
lain
bergema 'Nama fail dengan $ext sambungan:'
#Cetak semua nama fail dengan sambungan yang diberikan
bergema ' $( echo `ls *.$ext` ) '
jadilah
Output berikut muncul selepas melaksanakan skrip dengan input 'txt'. Mengikut output, tiga fail teks wujud di lokasi semasa:
Output berikut muncul selepas melaksanakan skrip dengan nilai kosong:
Contoh 3: Laksanakan Ungkapan Aritmetik dalam Subkulit
Cipta fail Bash dengan skrip berikut di mana pembolehubah dengan nama yang sama digunakan dalam shell utama dan subshell. Operasi aritmetik ditakrifkan dalam kulit utama dan subkulit.
#!/bin/bash#Tentukan pembolehubah shell induk
nombor = 10
#Cetak hasil berdasarkan pembolehubah shell induk
( ( hasil = $nombor + 5 ) )
bergema 'Jumlah daripada $nombor +5= $hasil '
#Buat pembolehubah subkulit dengan nama yang sama bagi cangkerang induk
( nombor = dua puluh ; ( ( hasil = $nombor + 10 ) ) ; bergema 'Jumlah daripada $nombor +5= $hasil ' )
#Cetak hasil berdasarkan pembolehubah shell induk sekali lagi
bergema 'Jumlah daripada $nombor +5= $hasil '
Output berikut muncul selepas melaksanakan skrip. Output pertama dan terakhir menunjukkan hasil shell utama. Output kedua menunjukkan hasil subkulit. Pembolehubah kulit utama tidak diubah suai oleh pembolehubah subkulit:
Contoh 4: Laksanakan Berbilang Perintah dalam Subkulit
Buat fail Bash dengan skrip berikut yang menghantar output perintah 'gema' ke dalam perintah 'sed' yang menggantikan nilai rentetan yang sepadan dengan rentetan lain. Output arahan 'gema' ialah 'JavaScript'. Jadi, nilai ini dibandingkan dengan 'Java' dan 'JavaScript'. Jika padanan ditemui, rentetan yang sepadan digantikan dengan rentetan 'Jenis'.
#!/bin/bash#Tentukan nilai rentetan
strVal = 'JavaScript'
#Cetak nilai rentetan asal
bergema 'Nilai rentetan: $strVal '
#Cetak nilai subkulit
bergema -n 'Nilai subkulit: '
bergema ' $(echo $strVal | sed 's|Java|Jenis JavaScript|') '
Output berikut muncul selepas melaksanakan skrip. Mengikut output, rentetan 'Java' digantikan dengan rentetan 'Jenis'. Output subkulit ialah 'JavaScript TypeScript':
Kesimpulan
Satu atau lebih arahan atau skrip boleh dilaksanakan menggunakan subkulit tanpa menjejaskan kulit utama. Tujuan menggunakan subkulit dijelaskan dalam tutorial ini menggunakan pelbagai contoh. Jenis tugas yang berbeza seperti mencari fail, mengira jumlah nombor, menggantikan rentetan, dan lain-lain dilakukan oleh subkulit dalam contoh yang diberikan. Konsep menggunakan subkulit ditunjukkan dengan betul dan pengguna Bash baharu kini boleh menggunakan subkulit selepas membaca tutorial ini.