Penggantian Variabel Bersarang dan Pembolehubah Bash yang Ditetapkan di Linux - Bahagian 11

Penggantian Variabel Bersarang dan Pembolehubah Bash yang Ditetapkan di Linux - Bahagian 11

Dua artikel terakhir di Bash Shell, di mana kami membincangkan pembolehubah secara terperinci sangat dihargai di kalangan pembaca kami. Kita sebagai Tecmint-Team sangat berminat untuk memberi anda topik terkini, terkini dan relevan yang diliputi secara terperinci. Lebih -lebih lagi kita sentiasa berusaha menyentuh perspektif utama topik yang sepadan.

Pembolehubah bersarang dalam skrip shell

Berikut adalah artikel terakhir mengenai pembolehubah Linux di mana kita akan melihat penggantian dan pembolehubah pembolehubah yang ditakrifkan dalam shell sebelum menutup topik ini.

Bash melakukan penggantian pembolehubah sebelum arahan benar -benar dilaksanakan. Linux Bash Shell mencari semua tanda '$' sebelum melaksanakan arahan dan menggantinya dengan nilai pembolehubah. Proses penggantian pemboleh ubah bash dilakukan sekali sahaja. Bagaimana jika kita mempunyai pembolehubah bersarang?

Catatan: Dengan pemboleh ubah bersarang yang kita maksudkan, pembolehubah diisytiharkan di dalam pembolehubah. Mari lihat senario di atas dalam contoh di bawah.

Mengisytiharkan pemboleh ubah yang dibaca sahaja dan boleh dilaksanakan seperti di bawah.

[E -mel dilindungi]: ~ $ DECLARE -RX LINUX_BEST_WEBSITE = "www.Tecmint.com "

Periksa nilai pembolehubah yang disimpan.

[E -mel dilindungi]: ~ $ printf "%s" "$ linux_best_website" www.Tecmint.com

Sekarang mengisytiharkan pemboleh ubah lain yang sekali lagi dibaca dan boleh dilaksanakan.

[E -mel dilindungi]: ~ $ DECLARE -RX LINUX_WEBSITE = "LINUX_BEST_WEBSITE"

Sekarang keadaannya, kami telah menentukan dua pembolehubah.

'Linux_best_website', nilai yang "www.Tecmint.com ""
dan, 'linux_website', nilai yang mana "linux_best_website"

Apa hasilnya, jika kita menjalankan perintah satu baris di bawah?

[E -mel dilindungi]: ~ $ printf "%s" "$ linux_website"

Ia harus menggantikan pembolehubah terlebih dahulu '$ Linux_website', dengan nilai "Linux_best_website"Dan kemudian"$ Linux_best_website"Sekali lagi pembolehubah nilai yang"www.Tecmint.com". Jadi output akhir menjalankan arahan di bawah mestilah.

[E -mel dilindungi]: ~ $ printf "%s" "$ linux_website" www.Tecmint.com

Tetapi malangnya, ini bukan keadaan, output yang kita dapatkan adalah Linux_best_website.

Sebab? Yup! Bash menggantikan nilai pembolehubah sekali sahaja. Bagaimana dengan skrip dan program yang kompleks di mana kita perlu menggantikan pembolehubah dengan kerap dan juga perlu menggantikan pembolehubah lebih dari sekali?

Inilah perintah 'eval'yang melakukan kerja tambahan penggantian berubah lebih dari sekali dalam skrip. Berikut adalah contoh untuk menjadikan keseluruhan berfungsi dengan jelas seperti kaca.

Mengisytiharkan pembolehubah x, nilai yang mana 10.

[dilindungi e -mel]: ~/desktop $ mengisytiharkan x = 10

Periksa nilai pembolehubah x, Kami hanya ditakrifkan.

[dilindungi e -mel]: ~/desktop $ echo $ yx x10

Mengisytiharkan pembolehubah y, nilai yang mana x.

[dilindungi e -mel]: ~/desktop $ mengisytiharkan y = x

Periksa nilai pembolehubah y, Kami hanya ditakrifkan.

[dilindungi e -mel]: ~/desktop $ echo $ y x

Inilah masalahnya Bash Penggantian pembolehubah satu masa, yang tidak melakukan pusingan tambahan penggantian pembolehubah. Kami menggunakan 'eval'Perintah untuk memperbaikinya.

[dilindungi e -mel]: ~/desktop $ eval y = $ x

Sekarang periksa nilai pemboleh ubah 'y'.

[dilindungi e -mel]: ~/desktop $ echo $ y 10

Hurray! Masalahnya telah ditetapkan dan 'eval'Perintah memenangi perlumbaan :)

Belum lagi, 'eval'Perintah sangat membantu dalam program skrip besar dan merupakan alat yang sangat berguna.

Yang terakhir tetapi tidak sekurang -kurangnya sebahagian daripada jawatan ini adalah pembolehubah yang telah ditetapkan oleh bash. Tidak! Jangan panik melihat senarai ini. Anda tidak perlu ingat keseluruhan senarai sebelum anda mula menulis skrip kecuali beberapa. Sebagai sebahagian daripada proses pembelajaran, kami menyampaikan senarai pembolehubah yang telah ditetapkan oleh bash.

Tidak. Pemboleh ubah bash Hasil
1 AUTO_RESUME Proses perintah siap untuk pekerjaan yang dihentikan.
2 Bash Jalan cangkang.
3 BASH_ENV Menunjukkan nama fail profil
4 Bash_version Menunjukkan versi bash
5 BASH_VERSINFO Menunjukkan maklumat versi terperinci.
6 BASH_VERSINFO [0] Nombor versi utama (pelepasan).
7 BASH_VERSINFO [1] Nombor versi kecil (versi).
8 BASH_VERSINFO [2] Tahap patch.
9 BASH_VERSINFO [3] Versi binaan.
10 BASH_VERSINFO [4] Status pelepasan (contohnya, beta1).
11 BASH_VERSINFO [5] Nilai machtype .
12 Cdpath Senarai direktori yang dipisahkan oleh kolon.
13 Lajur Bilangan aksara setiap baris pada output standard.
14 Euid ID pengguna pengguna semasa.
15 Fcedit Editor teks lalai untuk arahan FC.
16 FUNCNAME Nama keseronokan
17 Kumpulan Kumpulan yang pengguna adalah ahli.
18 Histfile Fail yang mengandungi sejarah arahan.
19 Rumah Nama direktori rumah anda.
20 Garis Bilangan garis mendatar pada output standard.
21 Mel Nama fail untuk menyemak surat masuk
22 Ostype Nama sistem operasi.
23 Oldpwd Direktori kerja sebelumnya
24 PWD Direktori kerja semasa
25 Rawak Mencetak nombor rawak
26 Shell Shell pilihan untuk digunakan
27 FORMAT MASA Format untuk arahan masa.
28 Uid ID pengguna semasa

Terdapat senarai besar pemboleh ubah bash yang telah ditetapkan. Kami telah cuba menghasilkan senarai yang paling kerap digunakan.

Itu sahaja buat masa ini. Saya akan berada di sini lagi dengan artikel lain yang menarik. Sehingga kemudian ditantikan dan disambungkan ke Tecmint. Jangan lupa memberi kami maklum balas berharga anda di bahagian komen di bawah.