Penggantian Variabel Bersarang dan Pembolehubah Bash yang Ditetapkan di Linux - Bahagian 11
- 2772
- 555
- Don Will
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 shellBerikut 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.
- « Pendekatan berorientasikan objek pengaturcaraan dan enkapsulasi Java - Bahagian 5
- Ketahui petua dan cara editor 'VI/VIM' yang berguna untuk meningkatkan kemahiran anda - Bahagian 1 »