Wawasan Variabel Linux dalam Bahasa Scripting Shell - Bagian 9
- 4035
- 423
- Ian Parker
Kami sudah menulis serangkaian artikel Linux Shell Scripting yang hangat disambut waktu itu dan itu jauh relevan bahkan sekarang. Berikut tautan ke koleksi artikel tentang skrip shell.
- Pelajari Linux Shell Scripting
Di sini, di artikel ini kita akan melihat variabel, eksekusi dan implementasinya dalam skrip shell.
Linux Variabel Shell ScriptingMenyimpan output
Output dari suatu perintah dapat diarahkan ke output standar atau file dan dapat disimpan dalam variabel, juga. Jika output dari suatu perintah cukup besar sehingga tidak sesuai dengan layar, kita hanya dibiarkan dengan opsi menyimpan output ke file ke dalam variabel. Salah satu keuntungan menyimpan output ke variabel adalah kecepatan pemeriksaan yang lebih cepat. Variabel disimpan ke dalam memori dan karenanya cenderung cepat dibandingkan dengan pengambilan dari file.
Variabel dalam bahasa skrip
Variabel adalah komponen penting yang digunakan dalam skrip shell dan dinyatakan menggunakan perintah bash “Menyatakan". Untuk menyatakan variabel mengatakan 'tingkat', kita perlu menjalankan perintah di bawah ini.
$ DECLARE LEVEL
Catatan: Kita perlu menggunakan "typecast”, Pernyataan bawaan untuk kompatibilitas shell Korn. 'Deklarasi' lebih maju dan berisi semua fitur, karenanya direkomendasikan saat menggunakan bash.
Aturan
- Nama variabel harus dibenarkan, penggunaan variabel dalam skrip.
- Menggunakan nama variabel yang sama di seluruh program ini sangat disarankan.
- Nama variabel dapat berupa huruf besar dan kecil tetapi dengan perintah cangkang konvensi berada dalam huruf kecil dan karenanya kita harus menggunakan nama variabel dalam huruf besar, sehingga dapat menghilangkan kebingungan apa pun. e.G., Total_billed_amount, sell_report, order_receipt, dll.
Penerapan
Variabel dapat diberi nilai menggunakan tanda yang sama (=). Untuk menetapkan string kosong ke variabel, kita tidak boleh memberikan nilai apa pun setelah tanda yang sama.
$ Level =
Periksa nilai yang disimpan dalam 'level' variabel sebagai.
$ printf "%i" $ level
printf, perintah sebagian besar 'C'Pemrogram mengetahui, mencetak data. %Saya - Mewakili integer. Kita bisa menggantinya dengan %C untuk karakter atau %C untuk string, as dan saat dibutuhkan.
$ Level: perhatikan '$'yang berfungsi sebagai pengganti nilai untuk variabel'TINGKAT'.
Output sampel
$ printf "%i" $ level 0
Tetapkan nilai ke variabel.
$ Level = 0
Periksa data yang disimpan dalam variabel.
$ printf "%i" $ level 0
CATATAN: Sangat menarik untuk dicatat bahwa dalam kedua kasus, ketika kami tidak menetapkan nilai ke variabel dan ketika kami menetapkan nilai '0'ke variabel'TINGKAT'Output 0. Meskipun outputnya sama dalam kedua kasus tetapi skrip shell menangani kedua deklarasi variabel secara berbeda.
Tetapkan nilai baru ke variabel.
$ Level = 121
Periksa data yang disimpan dalam variabel.
$ printf "%i" $ level 121
Tidak ada variabel
Menyatakan adalah perintah bash dan itu menciptakan variabel hanya saat dieksekusi. Variabel yang dibuat tetap ada dalam memori sampai skrip berhenti atau variabel dihancurkan.
$ level yang tidak disetel
Variabel yang telah ditentukan sebelumnya dalam bash
Bash sudah berakhir 50 variabel yang telah ditentukan sebelumnya. Beberapa variabel ini memiliki makna khusus yang melekat pada bash e.G., variabel ACAK mengeluarkan nomor acak. Jika tidak disetel dan kemudian didefinisikan lagi, nilai variabel asli hilang selamanya. Oleh karena itu disarankan untuk tidak menggunakan variabel yang ditentukan sistem apa pun.
Berikut adalah daftar beberapa variabel bash yang berguna.
- Bash-The Full Pathname of Bash.
- Bash_env-in skrip shell, nama file profil yang dijalankan sebelum skrip dimulai.
- Bash_version-versi bash (misalnya, 2.04.0 (1) -release).
- Kolom-jumlah karakter per baris pada tampilan Anda (misalnya, 80).
- Nama host-nama komputer. Di bawah beberapa versi Linux, ini bisa menjadi nama mesin. Pada yang lain, itu bisa menjadi nama domain yang sepenuhnya memenuhi syarat.
- HostType tipe komputer.
- Rumah-nama direktori rumah Anda.
- Ostype-nama sistem operasi.
- Daftar jalur pencarian yang dipisahkan oleh jalur-kolon untuk menemukan perintah untuk dieksekusi.
- PPID-ID proses dari proses induk shell.
- Prompt_command-command untuk dieksekusi sebelum pengaturan string prompt primer PS1.
- PWD-The Direktori Kerja Saat Ini (sebagaimana ditetapkan oleh perintah CD).
- Kembali acak, bilangan acak antara 0 dan 32767 setiap kali direferensikan.
- Shell-shell yang disukai untuk digunakan; Untuk program yang memulai shell untuk Anda.
- Istilah-tipe emulasi terminal (misalnya, konsol).
Aturan pemisahan kata.
$ Level = 0 $ printf "%i" $ level 0 dan $ level = "0" $ printf "%i" $ level 0
Dalam kedua kasus tersebut, output tetap sama. Jadi apa perbedaan hasil saat menggunakan kutipan?
Mari kita periksa hal yang sama dengan data variabel yang berbeda.
$ Level = 0; 1; 2; 3; 4; 5 Bash: 1: Perintah Tidak Ditemukan Bash: 2: Perintah Tidak Ditemukan Bash: 3: Perintah Tidak Ditemukan Bash: 4: Perintah Tidak Ditemukan Bash: 5: Perintah Tidak Ditemukan
$ printf "%i" $ level 0
Belum lagi, outputnya tidak benar. Bash mengambil ruang setelahnya '0'sebagai penghentian dan karenanya nilai variabel ditetapkan sebagai'0'. Sekarang kami mencoba menggunakan kutipan untuk variabel seperti di bawah ini.
$ Level = ”0; 1; 2; 3; 4; 5 "$ printf"%s "$ level 0; 1; 2; 3; 4; 5
Tetap saja hasilnya tidak benar. Bash mengambil nilai variabel dan menghapus semua ruang di antara mereka. Karena itu printf tidak menafsirkan 0,1,2,3,4,5 sebagai nilai yang berbeda. Jadi apa solusinya?
printf "%s" "$ level" 0; 1; 2; 3; 4; 5
Ya! Menempatkan substitusi variabel di bawah kutipan adalah solusinya. Kutipan mengelompokkan karakter dalam shell dan menafsirkan karakter khusus dengan cara yang bermakna.
Kutipan dapat digunakan back-to-back dan itu adalah ide yang bagus untuk melampirkan substitusi variabel dengan kutipan. Selain itu dapat digunakan untuk memisahkan teks keseluruhan dari kutipan. Inilah contohnya.
$ Level = 5 $ flag_message = "Saya telah membersihkan level" "$ level" ". Saya pantas mendapatkan penghargaan."$ printf"%s "" $ flag_message "
“Saya telah membersihkan level5. Saya pantas mendapatkan penghargaan."
Memisahkan potongan teks yang dikutip dengan ruang akan menghasilkan masalah yang sama seperti yang dibahas di atas. Bash akan memperlakukan ruang putih sebagai penghentian. Cara lain dari substitusi variabel adalah.
$ Level = 5 $ flag_message = "Saya telah membersihkan level $ level. Saya pantas mendapatkan penghargaan."$ printf"%s "" $ flag_message "" Saya telah membersihkan level 5. Saya pantas mendapatkan penghargaan."
Kutipan tunggal membatasi bash dari mencetak karakter khusus.
$ printf "%s" '$ flag_message' "$ flag_message"
Backslash (/)
Backslash berfungsi seperti kutipan tunggal untuk satu karakter. Pernahkah Anda berpikir bagaimana Anda akan mencetak (“)?
$ printf "%c" "\" ""
Kapan %Q dikelompokkan dengan printf, memberikan backslash setelah setiap kata untuk memastikan jarak kata.
$ Level = 5 $ flag_message = ""Saya telah membersihkan level $ level. Saya pantas mendapatkan penghargaan.""$ printf""%q """" $ flag_message """" i \ have \ cleared \ level \ 5.\ I \ pantas \ apresiasi.""
Itu saja untuk saat ini. Kami selalu berusaha memberi pembaca kami artikel yang berguna untuk mereka sesekali. Artikel yang dicakup di atas sangat luas sehingga sisa topik dengan contoh akan diproduksi dalam artikel berikutnya yang akan mencakup 'atribut variabel', 'ekspor variabel' dll.
Sampai kemudian tetap disini dan terhubung ke Tecmint.com. Jangan lupa memberi kami umpan balik berharga di bagian komentar di bawah ini.
"- « Mengaktifkan Direktori Web UserDir dan Kata Sandi di Zentyal WebServer - Bagian 10
- Mysqldumper alat cadangan database mysql berbasis php dan perl »