Wawasan tentang pembolehubah Linux dalam bahasa skrip shell - Bahagian 9
- 2044
- 392
- Dale Harris II
Kami sudah menulis satu siri artikel mengenai Linux Shell Scripting yang hangat menyambut masa itu dan ia sangat relevan walaupun sekarang. Berikut adalah pautan ke koleksi artikel mengenai skrip shell.
- Belajar skrip shell linux
Di sini dalam artikel ini kita akan melihat pembolehubah, pelaksanaannya dan pelaksanaannya dalam skrip shell.
Linux Variables Shell ScriptingMenjimatkan output
Output perintah boleh dialihkan ke output standard atau fail dan boleh disimpan dalam pembolehubah, juga. Sekiranya output arahan cukup besar sehingga tidak sesuai dengan skrin, kita hanya ditinggalkan dengan pilihan untuk menyimpan output ke fail ke dalam pembolehubah. Satu kelebihan penjimatan output ke pembolehubah adalah kelajuan peperiksaan yang lebih cepat. Pembolehubah disimpan ke dalam ingatan dan oleh itu ia cenderung cepat berbanding pengambilan semula dari fail.
Pembolehubah dalam bahasa skrip
Pembolehubah adalah komponen penting yang digunakan dalam skrip shell dan diisytiharkan menggunakan perintah bash "Mengisytiharkan". Untuk mengisytiharkan pemboleh ubah berkata 'tahap', kita perlu melaksanakan arahan di bawah.
$ mengisytiharkan tahap
Catatan: Kita perlu menggunakan "typecast", Kenyataan yang dibina untuk keserasian Korn Shell. 'Mengisytiharkan' lebih maju dan mengandungi semua ciri, oleh itu disyorkan apabila menggunakan Bash.
Peraturan
- Nama pemboleh ubah mesti membenarkan, penggunaan pembolehubah dalam skrip.
- Menggunakan nama pembolehubah yang sama sepanjang program ini dinasihatkan.
- Nama pembolehubah boleh menjadi huruf besar dan juga huruf kecil tetapi oleh perintah shell konvensyen berada dalam huruf kecil dan oleh itu kita harus menggunakan nama pembolehubah di huruf besar, untuk menghapuskan kekeliruan. e.g., Total_billed_amount, menjual_report, order_receipt, dll.
Pelaksanaan
Pemboleh ubah boleh diberikan nilai menggunakan tanda yang sama (=). Untuk memberikan rentetan kosong kepada pemboleh ubah, kita tidak boleh membekalkan sebarang nilai selepas tanda yang sama.
$ Level =
Periksa nilai yang disimpan dalam tahap pembolehubah 'sebagai.
$ printf "%i" tahap $
printf, arahan kebanyakan 'C'Pengaturcara sedar, mencetak data. %i - Mewakili integer. Kita boleh menggantikannya dengan %c untuk watak atau %c untuk rentetan, apabila dan bila diperlukan.
Tahap $: Perhatikan '$'yang berfungsi sebagai pengganti nilai untuk pembolehubah'Tahap '.
Output sampel
$ printf "%i" $ level 0
Berikan nilai kepada pemboleh ubah.
$ Level = 0
Periksa data yang disimpan dalam pemboleh ubah.
$ printf "%i" $ level 0
CATATAN: Sangat menarik untuk diperhatikan bahawa dalam kedua -dua kes, ketika kami tidak memberikan nilai kepada pemboleh ubah dan ketika kami memberikan nilai '0'ke pemboleh ubah'Tahap'output 0. Walaupun output adalah sama dalam kedua -dua kes tetapi skrip shell mengendalikan kedua -dua perisytiharan berubah secara berbeza.
Berikan nilai baru kepada pembolehubah.
$ Level = 121
Periksa data yang disimpan dalam pemboleh ubah.
$ printf "%i" $ level 121
Tidak jelas pembolehubah
Mengisytiharkan adalah perintah bash dan ia mewujudkan pembolehubah hanya apabila dilaksanakan. Pemboleh ubah yang dibuat secara kekal dalam ingatan sehingga skrip berhenti atau pemboleh ubah dimusnahkan.
Tahap $ Unset
Pembolehubah yang telah ditetapkan dalam bash
Bash telah berakhir 50 Pembolehubah yang telah ditetapkan. Beberapa pembolehubah ini mempunyai makna khas yang dilampirkan pada bash e.g., pembolehubah Rawak mengeluarkan nombor rawak. Sekiranya tidak tersendiri dan kemudian ditakrifkan lagi, nilai pembolehubah asal hilang selamanya. Oleh itu, dinasihatkan supaya tidak menggunakan pemboleh ubah yang ditentukan sistem.
Berikut adalah senarai beberapa pemboleh ubah bash yang berguna.
- Bash-Nama Laluan Penuh Bash.
- Bash_env-in skrip shell, nama fail profil yang dilaksanakan sebelum skrip dimulakan.
- Bash_version-versi Bash (contohnya, 2.04.0 (1) -Release).
- Lajur-Bilangan aksara setiap baris pada paparan anda (contohnya, 80).
- Nama Host-Nama komputer. Di bawah beberapa versi Linux, ini boleh menjadi nama mesin. Pada yang lain, ia boleh menjadi nama domain yang berkelayakan sepenuhnya.
- Hosttype-jenis komputer.
- Rumah-nama direktori rumah anda.
- Ostype-nama sistem operasi.
- Senarai Carian yang Dipisahkan Laluan-Jolon untuk mencari arahan untuk melaksanakan.
- PPID-Proses ID Proses Proses Ibu Bapa Shell.
- Prompt_command-command untuk melaksanakan sebelum penetapan rentetan proph primer PS1.
- PWD-direktori kerja semasa (seperti yang ditetapkan oleh arahan CD).
- Rawak mengembalikan nombor rawak antara 0 dan 32767 setiap kali ia dirujuk.
- Shell-shell pilihan untuk digunakan; untuk program yang memulakan shell untuk anda.
- TERM-jenis emulasi terminal (contohnya, konsol).
Peraturan perkataan berpecah.
$ Level = 0 $ printf "%i" $ level 0 dan $ level = "0" $ printf "%i" $ level 0
Dalam kedua -dua kes output tetap sama. Jadi apa perbezaan hasil semasa menggunakan sebut harga?
Mari kita periksa yang sama dengan data pembolehubah yang berbeza.
$ Level = 0; 1; 2; 3; 4; 5 Bash: 1: Command Not Found Bash: 2: Command Not Found Bash: 3: Command Not Found Bash: 4: Command Not Found Bash: 5: Command Not Found
$ printf "%i" $ level 0
Belum lagi, output tidak betul. Bash mengambil ruang selepas '0'Sebagai penamatan dan oleh itu nilai pemboleh ubah ditetapkan sebagai'0'. Sekarang kami cuba menggunakan petikan untuk pembolehubah seperti di bawah.
$ Level = "0; 1; 2; 3; 4; 5 "$ printf"%s "$ level 0; 1; 2; 3; 4; 5
Masih hasilnya tidak betul. Bash mengambil nilai pembolehubah dan mengeluarkan semua ruang di antara mereka. Oleh itu printf tidak ditafsirkan 0,1,2,3,4,5 sebagai nilai yang berbeza. Jadi apa penyelesaiannya?
printf "%s" "$ level" 0; 1; 2; 3; 4; 5
Yeah! Meletakkan penggantian pembolehubah di bawah petikan adalah penyelesaiannya. Petikan kumpulan watak dalam shell dan mentafsirkan watak -watak khas dengan cara yang bermakna.
Sebutharga boleh digunakan kembali dan adalah idea yang baik untuk melampirkan penggantian berubah dengan sebut harga. Lebih -lebih lagi ia boleh digunakan untuk memisahkan teks keseluruhan dari sebut harga. Inilah contohnya.
$ Level = 5 $ flag_message = "Saya telah membersihkan tahap" "tahap $" ". Saya berhak mendapat penghargaan."$ printf"%s "" $ flag_message "
"Saya telah membersihkan tahap 5. Saya berhak mendapat penghargaan."
Memisahkan potongan teks yang disebutkan dengan ruang akan menghasilkan masalah yang sama seperti yang dibincangkan di atas. Bash akan merawat ruang putih sebagai penamatan. Satu lagi cara penggantian pemboleh ubah adalah.
$ Level = 5 $ flag_message = "Saya telah membersihkan tahap $ level. Saya berhak mendapat penghargaan."$ printf"%s "" $ flag_message "" Saya telah membersihkan tahap 5. Saya berhak mendapat penghargaan."
Petikan tunggal mengehadkan bash dari mencetak watak khas.
$ printf "%s" '$ flag_message' "$ flag_message"
Backslash (/)
Backslash berfungsi seperti petikan tunggal untuk satu watak. Adakah anda fikir bagaimana anda akan mencetak (")?
$ printf "%c" "\" ""
Bila %q dikelompokkan dengan printf, menyediakan backslash selepas setiap perkataan untuk memastikan jarak kata.
$ Level = 5 $ flag_message = ""Saya telah membersihkan tahap $ level. Saya berhak mendapat penghargaan.""$ printf""%q """" $ flag_message """" i \ have \ cleared \ level \ 5.\ I \ layak \ penghargaan.""
Itu sahaja buat masa ini. Kami sentiasa berusaha menyediakan pembaca kami dengan artikel yang berguna untuk mereka setiap sekarang dan kemudian. Artikel yang dilindungi di atas adalah luas sehingga selebihnya topik dengan contoh akan dihasilkan dalam artikel seterusnya yang akan merangkumi 'atribut pembolehubah', 'pengeksportan pembolehubah' dan lain -lain.
Sehingga kemudian ditantikan dan disambungkan ke Tecmint.com. Jangan lupa memberi kami maklum balas berharga anda di bahagian komen di bawah.
"- « Membolehkan UserDir dan Kata Laluan Lindungi Direktori Web di Zentyal Webserver - Bahagian 10
- MySQLDUMPER A PHP dan Perl berasaskan alat sandaran pangkalan data mysql »