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.