Artikel ini adalah bagian dari seri tutorial bash kami yang sedang berlangsung. Seperti bahasa pemrograman lainnya, Bash juga menyediakan variabel.
Variabel bash menyediakan penyimpanan sementara untuk informasi yang akan dibutuhkan selama masa hidup program.
Sintaks:
VARNAME=VALUE
Catatan: Seharusnya tidak ada spasi di sekitar tanda “=” dalam penetapan variabel. Saat Anda menggunakan VAR=VALUE, shell melihat “=" sebagai simbol dan memperlakukan perintah sebagai penetapan variabel. Saat Anda menggunakan VAR =VALUE, shell mengasumsikan bahwa VAR harus menjadi nama perintah dan mencoba menjalankannya.
Shell tidak peduli dengan jenis variabel. Variabel dapat menyimpan string, integer, atau bilangan real.
Contoh.1 Penggunaan Penetapan Variabel Bash Sederhana
Skrip berikut membuat variabel bernama LIST dan memberikan nilai “/var/opt/bin”. Untuk mengakses variabel, cukup awali nama variabel dengan $, yang akan memberi Anda nilai yang tersimpan dalam variabel tersebut.
$ cat sample.sh #!/bin/bash LIST="/var/opt/bin/" ls -l $LIST
Jalankan skrip di atas, yang akan menampilkan /var/opt/bin dalam format panjang seperti yang ditunjukkan di bawah ini.
$ ./sample.sh total 8 drwxrwsr-x 2 bin bin 4096 Jan 29 06:43 softwares drwxr-sr-x 5 root bin 4096 Sep 2 2009 llist
Cakupan Variabel Bash – Lokal dan Global
Di Bash, variabel tidak harus dideklarasikan. Namun, ketika Anda mengakses variabel yang tidak digunakan selama ini, Anda tidak akan mendapatkan peringatan atau pesan kesalahan. Sebaliknya, itu akan menampilkan nilai kosong.
Contoh 2. Nilai kosong dalam variabel bash
$ cat var1.sh #!/bin/sh echo "Variable value is: $VAR1" VAR1="GEEKSTUFF" echo "Variable value is: $VAR1" $ ./var1.sh Variable value is: Variable value is: GEEKSTUFF
Seperti yang ditunjukkan di atas, awalnya variabel akan memiliki nilai kosong, setelah ditetapkan, Anda bisa mendapatkan nilai Anda. perintah ekspor digunakan untuk mengekspor variabel dari shell interaktif. export menunjukkan efek pada cakupan variabel.
Contoh 3. Variabel Bash tanpa ekspor
Tetapkan variabel dengan nilai di shell interaktif, dan coba akses yang sama di skrip shell Anda.
$ VAR2=LINUX $ cat var2.sh #!/bin/bash echo "VAR2=$VAR2" VAR2=UNIX echo "VAR2=$VAR2"
Sekarang, jalankan skrip di atas seperti yang ditunjukkan di bawah ini.
$ ./var2.sh VAR2= VAR2=UNIX
Tetap saja Anda akan mendapatkan nilai kosong untuk variabel VAR2. Shell menyimpan variabel VAR2 dengan LINUX hanya di shell saat ini. Selama eksekusi var2.sh, itu memunculkan shell dan menjalankan skrip. Jadi variabel VAR2 tidak akan memiliki nilai di shell spawned. Anda perlu mengekspor variabel agar dapat diwarisi oleh program lain – termasuk skrip shell, seperti yang ditunjukkan di bawah ini.
Contoh 4. Mengekspor Variabel Bash
$ export VAR2=LINUX $ cat var2.sh #!/bin/bash echo "VAR2=$VAR2" VAR2=UNIX echo "VAR2=$VAR2"
Sekarang jalankan skrip di atas.
$ ./var2.sh VAR2=LINUX VAR2=UNIX $ $echo $VAR2 LINUX
Sekarang, Anda dapat melihat bahwa setelah eksekusi skrip shell var2.sh, nilai VAR2 adalah LINUX. Karena variabel tidak akan diteruskan kembali ke shell interaktif Anda, kecuali jika Anda menjalankan skrip di shell saat ini.
Mendeklarasikan Variabel Bash
Menggunakan pernyataan mendeklarasikan di bash, kita dapat membatasi nilai yang diberikan ke variabel. Ini membatasi properti variabel. Opsi dalam pernyataan deklarasi digunakan untuk menentukan jenis variabel.
Sintaks:
declare option variablename
- deklarasikan adalah kata kunci Opsi
- bisa berupa:
- -r variabel baca saja
- -i variabel bilangan bulat
- -sebuah variabel array
- -f untuk fungsi
- -x mendeklarasikan dan mengekspor ke perintah berikutnya melalui lingkungan.
Contoh 5. Deklarasi variabel Bash menggunakan deklarasi
$ cat declar.sh #!/bin/bash declare -i intvar intvar=123 # Assigning integer value. echo $intvar intvar=12.3 #Trying to store string type value to an integer variable echo $intvar declare -r rovar=281 rovar=212 # Trying to change the readonly variable.
Dari eksekusi di bawah ini, Anda dapat melihat pesan kesalahan saat Anda menetapkan data yang tidak valid ke variabel.
$ ./declar.sh 123 t.sh: line 6: 12.3: syntax error: invalid arithmetic operator (error token is ".3") 123 t.sh: line 11: rovar: readonly variable
Variabel Bash Global
Variabel global juga disebut sebagai variabel lingkungan, yang akan tersedia untuk semua shell. perintah printenv digunakan untuk menampilkan semua variabel lingkungan.
$ printenv SHELL=/bin/bash HISTSIZE=1000 SSH_TTY=/dev/pts/1 HOME=/root LOGNAME=root CVS_RSH=ssh
Variabel Bash Lokal
Variabel lokal hanya terlihat di dalam blok kode. local adalah kata kunci yang digunakan untuk mendeklarasikan variabel lokal. Dalam suatu fungsi, variabel lokal hanya memiliki makna di dalam blok fungsi tersebut.
Contoh 6. Variabel Bash Global dan Lokal
$ cat localvar.sh #!/bin/bash pprint() { local lvar="Local content" echo -e "Local variable value with in the function" echo $lvar gvar="Global content changed" echo -e "Global variable value with in the function" echo $gvar } gvar="Global content" echo -e "Global variable value before calling function" echo $gvar echo -e "Local variable value before calling function" echo $lvar pprint echo -e "Global variable value after calling function" echo $gvar echo -e "Local variable value after calling function" echo $lvar
Jalankan script di atas,
$ sh t.sh Global variable value before calling function Global content Local variable value before calling function Local variable value with in the function Local content Global variable value with in the function Global content changed Global variable value after calling function Global content changed Local variable value after calling function
Pada output di atas, variabel lokal hanya akan memiliki nilai kosong sebelum dan sesudah memanggil fungsi. Ruang lingkupnya hanya dengan di dalam fungsi. Itu menghilang dari fungsi, sedangkan variabel global memiliki nilai yang diperbarui bahkan setelah fungsi dieksekusi.