Variabel Bash Mendalam

Variabel adalah tempat untuk menyimpan suatu objek dalam memori komputer. Artikel ini menjelaskan cara mendeklarasikan variabel menggunakan perintah bawaan yang dipanggil untuk mendeklarasikan. Kemudian menjelaskan arti dari atribut variabel dan memberikan beberapa contoh. Setelah itu, beberapa variabel yang telah ditentukan dibicarakan.

Nama variabel adalah nama yang diberikan oleh programmer. Script berikut memberikan contoh deklarasi variabel dengan tugas:

    declare num=2.5

    declare str1=books

    declare str2='the books'

    declare arr=(zero one 2 "three ccc")

    echo $num
    echo $str1
    echo $str2
    echo ${arr[3]}

Outputnya adalah:

2.5

books

the books

three ccc

Nomor diberikan tanpa tanda kutip. Sebuah kata sebagai nilai dapat diberikan tanpa tanda kutip. Lebih dari satu kata sebagai nilai dialokasikan dengan tanda kutip tunggal atau ganda. Seharusnya tidak ada spasi di kiri atau kanan operator penugasan. Untuk membaca nilai suatu variabel ke bawah dalam skrip, variabel tersebut harus didahului dengan $. Pembacaan nilai array memiliki sintaks khusus.

Array yang dideklarasikan di atas adalah array terindeks. Array asosiatif akan dideklarasikan sebagai berikut:

declare -A arr=([aa]=zero [bb]=one [cc]=2 [dd]='three ccc')

Di sini, ‘-A’ adalah contoh atribut. Itu berarti arr adalah array asosiatif dan bukan array yang diindeks. ‘A’ dalam ‘-A’ tidak berarti atribut. Atribut variabel adalah subset dari apa yang disebut opsi perintah.

Sebuah variabel dapat dideklarasikan dan nilainya ditetapkan setelahnya, seperti yang ditunjukkan oleh skrip berikut:

    declare num
    declare str1
    declare str2
    declare -A arr

    num=2.5
    str1=books
    str2='the books'
    arr=([aa]=zero [bb]=one [cc]=2 [dd]='three ccc')

    echo $num
    echo $str1
    echo $str2
    echo ${arr[dd]}

Outputnya adalah:

2.5

books

the books

three ccc

Saat menetapkan nanti, nama variabel tidak didahului oleh $.

Isi Artikel

Atribut Variabel

Sebuah atribut variabel, memberikan lebih presisi untuk variabel. Misalnya, di:

declare -A arr=([aa]=zero [bb]=one [cc]=2 [dd]='three ccc')

opsi ‘-A’ untuk mendeklarasikan perintah bawaan, tepat bahwa arr adalah array asosiatif. ‘-A’ adalah atribut ke variabel, arr. ‘-a’ dalam perintah berikut, tepat bahwa arr adalah array yang diindeks:

declare -a arr=(zero one 2 "three ccc")

‘-a’ adalah opsional. Tanpa itu, arr akan dianggap sebagai array yang diindeks.

Beberapa Atribut Variabel

-sebuah

Digunakan untuk array – lihat di atas

-SEBUAH

Digunakan untuk array – lihat di atas

-Saya

Variabel adalah untuk menahan bilangan bulat. Segmen kode berikut akan menghasilkan pesan error karena 2.5 bukan bilangan bulat.

declare -i num=2.5

echo $num

Segmen kode berikut akan menampilkan, 2 :

declare -i num=2

echo $num

-l

Mengizinkan karakter huruf kecil dalam huruf kecil, tetapi mengonversi karakter huruf besar apa pun menjadi huruf kecil, seperti pada segmen kode berikut:

declare -l str=abcDEF

echo $str

-u

Mengizinkan karakter huruf besar dalam huruf besar, tetapi mengonversi karakter huruf kecil apa pun menjadi huruf besar, seperti pada segmen kode berikut:

declare -u str="abc DE
F"

echo $str

Outputnya adalah: ABC DEF

-R

Membuat variabel, read-only (konstan). Nilai yang ditetapkan ke variabel tidak dapat diubah nanti dalam skrip. Di segmen kode berikut, dua baris pertama beroperasi dengan baik; tetapi baris terakhir mengeluarkan pesan error karena ada upaya untuk mengubah nilai variabel konstan:

declare -r num=56

echo $num

num=32

– n

Membuat referensi ke lokasi memori. Kode berikut menggambarkan hal ini:

declare var=56

declare -n ref1=var

declare -n ref2=var

echo $var

echo $ref1

echo $ref2

Outputnya adalah:

56

56

56

Jika nilai salah satu variabel diubah, sisanya diubah ke nilai itu; karena mereka merujuk ke lokasi memori yang sama.

baca Perintah

Perintah read membaca sebaris teks dari konsol. Asumsikan bahwa tiga nilai berikut harus dibaca:

one two beta three

Di mana “satu” adalah satu nilai, “dua beta” adalah nilai kedua, dan “tiga” adalah nilai ketiga. Perhatikan bahwa nilai kedua adalah dua kata, dipisahkan oleh spasi. Baris nilai ini harus diketik sebagai berikut:

one two beta three

Artinya, spasi antara “dua” dan “beta” harus diloloskan dengan garis miring terbalik agar kedua kata tersebut muncul sebagai satu nilai. Jadi, jika ada nilai yang terdiri dari lebih dari satu kata, setiap spasi di dalamnya harus diloloskan. Untuk membaca ketiga nilai ini, perintah read harus seperti:

read aa bb cc

Dimana aa, bb, dan cc adalah variabel yang dipilih oleh programmer.

Ketika perintah baca dijalankan, kursor akan berkedip bagi user untuk memasukkan baris dan tekan Enter. Jika user memasukkan baris di atas dengan spasi yang diloloskan, maka efeknya akan setara dengan:

aa=one

bb="two beta"

cc=three

Jika ada lebih banyak nilai daripada variabel, nilai yang tersisa ditugaskan ke variabel terakhir. Jika ada lebih banyak variabel daripada nilai, variabel yang tersisa diberi nilai kosong.

Nilai dapat dibaca ke dalam array indeks, di mana setiap indeks sesuai dengan satu nilai. Sekali lagi, setiap spasi yang menggabungkan dua kata harus diloloskan. Kode berikut menggambarkan hal ini:

read -a arr

size=${#arr[*]} #array size

for ((i=0; i < $size; ++i)); do

echo ${arr[i]}

done

If the input was,

one two beta three

Outputnya akan,

one

two beta

three

Beberapa Variabel Standar

Variabel-variabel ini harus didahului dengan $ untuk digunakan sebagai argumen pada perintah echo.

PESTA

Di komputer penulis,

echo $BASH

memberikan keluaran,

/bin/bash

Ini adalah nama path lengkap ke penerjemah bash.

BASH_ENV

Ini ada hubungannya dengan Bash Startup Files. Di komputer penulis,

echo $BASH_ENV

memberikan nol untuk output

BASHPID

Proses adalah program atau skrip yang berjalan di komputer. Sistem operasi mengidentifikasi proses dengan angka. Di komputer penulis,

echo $BASHPID

gave the output,

3141

Yang merupakan ID proses (PID) dari skrip bash yang berjalan.

BASH_VERSION

Ini memberikan nomor versi dari instance saat ini (proses yang berjalan) dari Bash; misalnya

4.4.20(1)-release

EPOCH DETIK

Era Unix adalah 1 Januari 1970 00:00:00 UTC. Var
iabel ini harus memberikan jumlah detik sejak Unix Epoch.

EUID

Variabel ini memberikan ID user numerik efektif dari user saat ini, kira-kira 1000.

KELOMPOK

Pengguna saat ini dapat menjadi anggota dari daftar grup. Ini memberikan variabel array dari daftar itu. Jika digunakan sebagai berikut,

echo ${GROUPS[*]}

hasilnya mungkin seperti ini:

1000 24 27 30 46 116 126 4

RUMAH

Ini adalah direktori user saat ini. Ini adalah sesuatu seperti:

/home/smith

Dimana nama usernya adalah Smith.

NAMA HOST

Nama host adalah nama yang mendahului prompt ketika prompt ditampilkan di terminal. Variabel ini memberikan nama host saat ini. Ini adalah sesuatu seperti:

smith-PC

HOSTTYPE

Ini adalah jenis engine yang dijalankan Bash. Ini bisa berupa:

x86_64

FILE HOST

File host adalah file teks biasa yang memetakan alamat IP ke nama host. Variabel ini memberikan path dan nama file untuk file host, yang mungkin seperti:

/etc/hosts

Namun, password mungkin diperlukan untuk membuka file.

SURAT

Variabel ini dapat diatur ke nama file atau nama direktori. Bash harus menggunakannya untuk memberi tahu user ketika email tiba.

IFS

IFS adalah singkatan dari Pemisah Bidang Internal. Ini digunakan untuk memisahkan string menjadi berbagai bagian. Perhatikan kode berikut:

declare -a arr=(" one" " two" " three")

IFS=','

echo "${arr[*]}"

Outputnya adalah:

one, two, three

IFS telah disetel dengan ‘,’. Jadi, tampilan nilai array dipisahkan dengan ‘,’. Output muncul seolah-olah koma dan spasi memisahkan nilai-nilai. Ini tidak benar-benar terjadi. Tampaknya demikian karena setiap nilai dalam array telah didahului dengan spasi.

PPID

Dimungkinkan untuk memiliki proses dan proses anak. Prosesnya adalah proses induk. PPID adalah ID proses dari induk shell (Bash). Di komputer penulis.

echo $PPID

outputted

3134

PD

Ini adalah direktori kerja saat ini.

KERANG

Ini mirip dengan variabel BASH – lihat di atas

UID

Ini adalah ID numerik asli dari user saat ini. Di komputer penulis,

echo $UID

outputted,

1000

Kesimpulan

Sebuah variabel memegang nilai. Variabel juga dapat mereferensikan lokasi di memori yang memiliki nilai. Ketika sebuah variabel diset (diberi nilai), itu tidak didahului oleh $. Ketika nilai suatu variabel dibaca, itu didahului oleh $. Dengan perintah mendeklarasikan, variabel dapat memiliki atribut. Atribut variabel adalah opsi untuk perintah. Sebuah atribut variabel menghasilkan perilaku tertentu dari variabel. Atribut yang mungkin sering digunakan pembaca adalah: -a, -A, -i, -l, -u, -r, dan -n. Ada variabel yang telah ditentukan sebelumnya. Yang mungkin sering digunakan pembaca telah diberikan di bagian sebelumnya.

Related Posts