Wawasan "Variabel" Linux dalam Bahasa Skrip Shell - Bagian 9


Kami telah menulis serangkaian artikel tentang Linux Shell Scripting yang mendapat sambutan hangat saat itu dan sangat relevan hingga saat ini. Berikut link kumpulan artikel tentang shell scripting.

  1. Pelajari Skrip Shell Linux

Di sini, di artikel ini kita akan melihat variabel, eksekusinya, dan implementasinya dalam skrip shell.

Menyimpan Output

Output dari suatu perintah dapat dialihkan ke output standar atau file dan juga dapat disimpan dalam variabel. Jika output suatu perintah cukup besar sehingga tidak sesuai dengan layar, kita hanya memiliki pilihan untuk menyimpan output ke file ke dalam variabel. Salah satu keuntungan menyimpan keluaran ke variabel adalah kecepatan pemeriksaan yang lebih cepat. Variabel disimpan ke dalam memori dan karenanya cenderung lebih cepat dibandingkan dengan pengambilan dari file.

Variabel dalam Bahasa scripting

Variabel adalah komponen penting yang digunakan dalam skrip Shell dan dideklarasikan menggunakan perintah bash “Declare ”. Untuk mendeklarasikan variabel, katakanlah 'level', kita perlu menjalankan perintah di bawah ini.

declare LEVEL

Catatan: Kita perlu menggunakan “typecast ”, pernyataan bawaan untuk kompatibilitas korn shell. 'Deklarasi' lebih canggih dan berisi semua fitur, oleh karena itu disarankan saat menggunakan BASH.

Aturan
  1. Nama variabel harus membenarkan penggunaan variabel dalam skrip.
  2. Sangat disarankan untuk menggunakan nama variabel yang sama di seluruh program.
  3. Nama variabel dapat berupa huruf besar dan juga huruf kecil tetapi berdasarkan konvensi, perintah shell menggunakan huruf kecil dan oleh karena itu kita harus menggunakan nama variabel dalam huruf besar, untuk menghilangkan kebingungan. misalnya TOTAL_BILLED_AMOUNT, SELL_REPORT, ORDER_RECEIPT, dll.

Penerapan

Sebuah variabel dapat diberi nilai menggunakan tanda sama dengan (=). Untuk menetapkan string kosong ke variabel, kita tidak boleh memberikan nilai apa pun setelah tanda sama dengan.

LEVEL =

Periksa nilai yang disimpan dalam variabel 'LEVEL' sebagai.

printf "%i" $LEVEL

printf, perintah yang diketahui sebagian besar pemrogram 'C', mencetak data. %i – Mewakili Integer. Kita dapat menggantinya dengan %c untuk Karakter atau %c untuk string, jika diperlukan.

$LEVEL: Perhatikan '$' yang berfungsi sebagai pengganti nilai untuk variabel 'LEVEL'.

Contoh Keluaran
printf "%i" $LEVEL
0

Tetapkan nilai ke variabel.

LEVEL=0

Periksa data yang disimpan dalam variabel.

printf "%i" $LEVEL
0

CATATAN: Menarik untuk dicatat bahwa dalam kedua kasus tersebut, ketika kita tidak menetapkan nilai ke variabel dan ketika kita menetapkan nilai '0<' ke variabel 'LEVEL' menghasilkan 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

Batalkan penyetelan Variabel

Declare adalah perintah BASH dan hanya membuat variabel saat dijalankan. Variabel yang dibuat tetap berada di memori sampai skrip berhenti atau variabel tersebut dimusnahkan.

unset LEVEL

Variabel Standar di BASH

BASH memiliki lebih dari 50 variabel yang telah ditentukan sebelumnya. Beberapa variabel ini mempunyai arti khusus yang melekat pada BASH misalnya, variabel RANDOM menghasilkan angka acak. Jika tidak disetel dan kemudian didefinisikan kembali, nilai variabel asli akan hilang selamanya. Oleh karena itu disarankan untuk tidak menggunakan variabel yang ditentukan sistem apa pun.

Berikut adalah daftar beberapa variabel BASH yang berguna.

  1. BASH—Nama jalur lengkap Bash.
  2. BASH_ENV—Dalam skrip shell, nama file profil dieksekusi sebelum skrip dimulai.
  3. BASH_VERSION—Versi Bash (misalnya, 2.04.0(1)-rilis).
  4. KOLOM—Jumlah karakter per baris pada tampilan Anda (misalnya, 80).
  5. HOSTNAME—Nama komputer. Pada beberapa versi Linux, ini bisa menjadi nama mesin. Di sisi lain, ini bisa berupa nama domain yang sepenuhnya memenuhi syarat.
  6. HOSTTYPE—Jenis komputer.
  7. HOME—Nama direktori home Anda.
  8. OSTYPE—Nama sistem operasi.
  9. PATH—Daftar jalur pencarian yang dipisahkan titik dua untuk menemukan perintah yang akan dijalankan.
  10. PPID—ID proses dari proses induk shell.
  11. PROMPT_COMMAND—Perintah untuk dijalankan sebelum pengaturan string prompt utama PS1.
  12. PWD—Direktori kerja saat ini (sebagaimana diatur oleh perintah cd).
  13. RANDOM—Mengembalikan nomor acak antara 0 dan 32767 setiap kali direferensikan.
  14. SHELL—Shell pilihan untuk digunakan; untuk program yang memulai shell untuk Anda.
  15. JANGKA—Jenis emulasi terminal (misalnya, konsol).

Aturan Pemisahan Kata.

LEVEL=0
printf "%i" $LEVEL
0

AND

LEVEL=”0”
printf "%i" $LEVEL
0

Dalam kedua kasus tersebut, keluarannya tetap sama. Lalu 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: 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, outputnya tidak tepat. BASH mengambil spasi setelah '0' sebagai penghentian dan karenanya nilai variabel ditetapkan sebagai '0'. Sekarang kita coba 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 spasi di antaranya. Oleh 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 tanda kutip adalah solusinya. Kutipan mengelompokkan karakter dalam shell dan menafsirkan karakter khusus dengan cara yang bermakna.

Kutipan dapat digunakan secara berurutan dan merupakan ide bagus untuk menyertakan substitusi variabel dengan tanda kutip. Selain itu dapat digunakan untuk memisahkan keseluruhan teks dari kutipan. Ini sebuah contoh.

LEVEL=5 
FLAG_MESSAGE="I HAVE CLEARED LEVEL""$LEVEL"". I Deserve appreciation." 
printf “%s” “$FLAG_MESSAGE”
“I HAVE CLEARED LEVEL5. I Deserve appreciation.”

Memisahkan potongan teks yang dikutip dengan spasi akan menimbulkan masalah yang sama seperti yang dibahas di atas. Pesta akan memperlakukan ruang putih sebagai penghentian. Cara lain untuk substitusi variabel adalah.

LEVEL=5

FLAG_MESSAGE="I HAVE CLEARED LEVEL ${LEVEL}. I Deserve appreciation." 

printf “%s” "$FLAG_MESSAGE" 
“I HAVE CLEARED LEVEL 5. I Deserve appreciation.”

Tanda kutip tunggal membatasi BASH untuk mencetak karakter khusus.

printf “%s” '$FLAG_MESSAGE'
“$FLAG_MESSAGE”

Garis miring terbalik (/)

Garis miring terbalik berfungsi seperti kutipan tunggal untuk satu karakter. Pernahkah Anda memikirkan bagaimana Anda akan mencetak ()?

printf "%c" "\""

Saat %q dikelompokkan dengan printf, berikan garis miring terbalik setelah setiap kata untuk memastikan spasi kata.

LEVEL=5

FLAG_MESSAGE="I HAVE CLEARED LEVEL ${LEVEL}. I Deserve appreciation." 

printf “%q” "$FLAG_MESSAGE" 
“I\ HAVE\ CLEARED\ LEVEL\ 5.\ I\ Deserve\ appreciation.”

Itu saja untuk saat ini. Kami selalu berusaha menyediakan artikel-artikel yang bermanfaat bagi pembaca kami setiap saat. Artikel yang dibahas di atas sangat luas sehingga topik lainnya beserta contohnya akan dibuat di artikel berikutnya yang mencakup 'Atribut variabel', 'Ekspor variabel', dll.

Sampai saat itu Nantikan terus dan terhubung dengan linux-console.net. Jangan lupa untuk memberi kami umpan balik Anda yang berharga di bagian komentar di bawah.