Memahami dan Menulis 'Pembolehubah Linux' dalam skrip shell - Bahagian 10
- 1640
- 376
- Dana Hammes
Bahasa skrip shell linux selalu menjadi topik hangat dan akan selalu berada di masa depan. Bahasa skrip shell adalah ajaib dan sangat mudah untuk melakukan program dalam bahasa skrip seperti dalam bahasa lain. Walau bagaimanapun, ia memerlukan pengetahuan mendalam tentang apa yang kita lakukan dan hasilnya diharapkan.
Memahami pembolehubah dalam skrip shellSemua artikel skrip shell yang kami tulis untuk pembaca kami sangat dihargai termasuk yang terakhir "wawasan pembolehubah linux". Kami memperluaskan artikel terakhir ke tahap yang baru.
Atribut berubah -ubah
Setiap pemboleh ubah dalam persekitaran Linux mempunyai pilihan tertentu, dan mereka dipanggil 'atribut'. Pilihan atau atribut ini boleh dihidupkan Pada dan Mati, apabila diperlukan mengikut keadaan menggunakan arahan "mengisytiharkan".
Contoh atribut pembolehubah menggunakan suis berkata '-i'Yang akan menghidupkan atribut integer untuk pemboleh ubah yang sepadan. Walaupun nilai bukan angka diluluskan untuk bertukar '-i'Ia tidak akan membuang mesej ralat dan output'0'Sebagai tafsiran integer. Di sini ia menjadi lebih jelas dari contoh di bawah.
Mengisytiharkan integer pembolehubah, Bill = 121
[dilindungi e -mel]: ~ $ mengisytiharkan -I Bill = 121
Printf nilai bil pembolehubah.
[dilindungi e -mel]: ~ $ printf "%d \ n" "$ bill" 121
Biarkan nilai berubah menjadi rentetan. Rang undang -undang pembolehubah sudah diisytiharkan, tidak perlu mengisytiharkannya kali kedua. Tukar nilai pemboleh ubah sebagai.
[dilindungi e -mel]: ~ $ bill = tecmint
Sekarang, sekali lagi cetak nilai bil pembolehubah.
[dilindungi e -mel]: ~ $ printf "%d \ n" "$ bill" 0
Notis '0'Di tempat mesej ralat.
Sekarang, persoalannya, bagaimana untuk mengetahui sifat -sifat pembolehubah yang telah diisytiharkan?
[dilindungi e -mel]: ~ $ DECLARE -P Bill DECLLARE -I BILL = "121"
Di sini, a -p (Berdiri untuk Cetak) Suis datang untuk menyelamatkan.
Sekali lagi, apa yang harus saya lakukan untuk mematikan sifat pembolehubah?
Untuk menukar Mati Atribut pemboleh ubah yang kita perlukan semua adalah untuk meletakkan + (Plus) tanda sebelum suis. Di sini lebih jelas dari contoh di bawah.
Suis Mati atribut integer untuk pemboleh ubah di atas.
[dilindungi e -mel]: ~ $ mengisytiharkan +saya bil
Periksa nilai pembolehubah.
[E -mel dilindungi]: ~ $ printf "%d \ n" "$ bill" bash: printf: rang undang -undang: nombor tidak sah 0
Sekarang cetak nilai pembolehubah menggunakan tali suis.
[dilindungi e -mel]: ~ $ printf "%s \ n" "$ bill" tecmint
Di sini dalam contoh di atas, Bash tidak dapat menilai nilai bukan angka sebagai kesilapan printf mentafsirkan, apa yang boleh menjadi nombor dan apa yang tidak boleh.
Pembolehubah baca sahaja
Anda mungkin pernah mendengar hanya memori baca (ROM), tetapi apa yang dibaca sahaja? Mempunyai persamaan dengan ROM?
Pembolehubah baca sahaja seperti memori baca sahaja adalah sesuatu yang tidak dapat diubah sebaik sahaja ia ditugaskan. Oleh itu ia dipanggil baca sahaja. Anda tidak boleh menulis, mengedit atau mengubah nilai baru untuk pemboleh ubah itu. Berikut adalah ilustrasi menggunakan contoh.
Decalre hanya dibaca (-r) Nama berubah, nilai yang "tecmint.com "".
[dilindungi e -mel]: ~ $ DECLARE -R NAME = "TECMINT.com "
Printf nilai pemboleh ubah yang diisytiharkan di atas.
[E -mel dilindungi]: ~ $ printf "%s \ n" "$ name" Tecmint.com
Cuba ubah nilai pembolehubah.
[E -mel dilindungi]: ~ $ DECLARE -R NAME = "AVISHEK" BASH: DECLARE: NAME: Variabel ReadOnly
Seperti yang dibincangkan di atas atribut pemboleh ubah baca sahaja boleh diubah menggunakan '+'Tanda.
Mengeksport Pembolehubah di Linux
Semua pembolehubah shell yang diisytiharkan dalam skrip shell tersedia sehingga skrip berjalan. Di luar skrip pembolehubah dari skrip tidak wujud. Proses membuat pembolehubah yang terdapat di luar skrip dipanggil pengeksportan pembolehubah.
Pemboleh ubah boleh dieksport di luar shell menggunakan suis mengisytiharkan -x (eksport), yang mengakui shell apa yang anda mahu eksport. Suis eksport mengisytiharkan boleh digunakan sebagai.
[E -mel dilindungi]: ~ $ DECLARE -X VARIABLE = "CONSTANT_VALUE"
Semua perubahan yang dibuat kepada pemboleh ubah semasa skrip berjalan, hilang apabila pemboleh ubah dieksport di luar skrip. Mengeksport pemboleh ubah sangat penting dalam skrip shell.
Kami mahu mempunyai pemboleh ubah yang harus dibaca sahaja dan boleh didapati di luar skrip, kita perlu menggunakan suis -r dan beralih -x pada masa yang sama.
[E -mel dilindungi]: ~ $ DECLARE -RX Variable = "Constant_Value"
Pembolehubah persekitaran
Pembolehubah yang dikongsi antara program dan program yang melaksanakannya. Pembolehubah persekitaran boleh dieksport tetapi atribut tidak dapat diberikan kepadanya.
Memahami teori di atas secara praktikal. Di sini kita mempunyai dua skrip 0.sh dan 1.sh.
# 0.sh #!/Bin/Bash Declare -Rx Name = Tecmint Bash 0.SH EXIT 0
Dan skrip kedua adalah.
# 1.sh #!/bin/bash printf "%s \ n" "$ name" name = tecmint.com printf "%s \ n" "$ name" Exit 0
Di sini apa yang sedang berlaku, adalah pemboleh ubah (nama) diisytiharkan sebagai dibaca sahaja dan dieksport dan sejurus selepas skrip kedua dipanggil.
Skrip kedua hanya mencetak pemboleh ubah dari skrip pertama yang dieksport pada yang pertama printf penyata. Dalam pernyataan printf kedua ia menunjukkan nilai baru yang diberikan kepada pemboleh ubah 'nama'.
Tidak perlu risau, bahawa pemboleh ubah itu hanya dibaca, bagaimana ia boleh ditugaskan semula. Tidakkah anda ingat bahawa "semua perubahan yang dibuat kepada pemboleh ubah semasa skrip berjalan, hilang apabila pemboleh ubah dieksport di luar skrip."
Rujukan
The mengisytiharkan Perintah membolehkan semua suis di bawah bersama -sama dengan kombinasi mereka.
- -a : Mengisytiharkan pelbagai.
- -f : Fungsi dan definisi paparan.
- -F : Nama fungsi paparan.
- -r : Mengisytiharkan pemboleh ubah sebagai baca sahaja.
- -x : Mengisytiharkan pemboleh ubah sebagai dieksport.
- -I : Mengisytiharkan pemboleh ubah sebagai integer.
Itu sahaja buat masa ini. Dalam artikel seterusnya kita akan membincangkan cara untuk menggantikan pembolehubah menggunakan 'eval'Perintah dan pembolehubah sudah ditakrifkan dalam bash sebelum menutup topik ini. Semoga anda menikmati perjalanan anda ke dalam skrip yang mendalam. Sehingga kemudian ditantikan dan disambungkan ke Tecmint.com.
- « Membuat tuan rumah maya, menjana sijil & kunci SSL dan membolehkan CGI Gateway di Gentoo Linux
- Memasang GUI (Desktop Cinnamon) dan perisian asas di Arch Linux »