GNU/Linux >> Belajar Linux >  >> Linux

Bash Scripting – Variabel Dijelaskan Dengan Contoh

Variabel adalah konsep yang sangat penting dalam bahasa pemrograman apa pun yang Anda gunakan. Pikirkan variabel sebagai wadah dalam memori yang menyimpan data dari jenis tertentu. Tujuan utama dari variabel adalah untuk menyimpan nilai dan mengaksesnya nanti untuk diproses. Jika Anda adalah seseorang dari bahasa pemrograman lain seperti Java, C, C++, Anda mungkin menemukan perbedaan dalam definisi variabel karena Bash tidak memiliki sistem tipe yang kuat.

Bash menangani dua jenis variabel. Mereka adalah:

  • Variabel yang ditentukan pengguna :Variabel yang Anda buat dan manipulasi.
  • Variabel lingkungan :Dibuat dan disimpan oleh bash atau aplikasi untuk tujuan sistem/Aplikasi.

Kami akan mulai bekerja dengan variabel yang ditentukan pengguna diikuti oleh variabel lingkungan.

1. Cara membuat variabel

Variabel harus memiliki pengenal (nama variabel) dan nilai yang ditetapkan untuk itu seperti yang ditunjukkan di bawah ini. Pengenal (nama variabel) adalah "site_name" dan nilai yang diberikan adalah "OSTechnix" .

$ site_name="OSTechnix"
$ this_year=2021
$ value_of_pi=3.14

Ada beberapa hal yang perlu diingat saat membuat variabel.

  • Tidak boleh ada spasi antara nama variabel dan nilai.
  • Cobalah untuk menghindari penggunaan nama yang sudah digunakan seperti kata kunci bash yang dicadangkan, nama variabel dan fungsi yang akan menimbulkan konflik.
  • Membuat nama variabel deskriptif dan nama variabel dapat memiliki huruf, angka, garis bawah, dan angka.

Konvensi penamaan variabel dapat diperdebatkan karena saya telah melihat orang yang berbeda menggunakan konvensi yang berbeda untuk membuat nama variabel. Beberapa membuat variabel yang ditentukan pengguna menggunakan kasus ular seperti yang saya buat pada contoh sebelumnya dan beberapa membuat nama variabel dengan huruf besar. Tidak ada aturan ketat dalam bash tetapi konsisten dengan metode apa pun yang Anda pilih. Saya lebih suka memberi nama variabel saya dalam kasus ular dan konstanta dalam huruf besar.

2. Cara mengakses variabel Bash

Ada dua cara untuk mengakses variabel. Salah satunya menggunakan "$ symbol" diikuti dengan nama variabel dan metode kedua menggunakan "$ symbol" diikuti dengan kurung kurawal dan nama variabel di dalam kurung kurawal.

$ echo $site_name
OSTechnix
$ echo ${this_year}
2021
$ echo ${this_year} $value_of_pi
2021 3.14

3. Tetapkan ulang nilai ke variabel

Bash tidak memiliki sistem tipe yang kuat yang berarti tidak ada aturan ketat dalam mendefinisikan tipe data saat membuat variabel. Variabel Bash menyimpan semua nilai sebagai string dan dengan cerdas mengetahui kapan kita bekerja dengan komputasi numerik.

Anda dapat menetapkan kembali nilai apa pun ke variabel yang sudah dibuat.

$ os_name="PoP_OS!"
$ echo ${os_name}
PoP_OS!
$ os_name="Linux Mint"
$ echo ${os_name}
Linux Mint

4. Mendeklarasikan tipe data untuk variabel

Anda dapat menggunakan declare perintah untuk membuat variabel dengan tipe data tertentu. Akses bagian bantuan declare perintah untuk mengetahui lebih banyak tentangnya.

$ declare --help

Misalnya, jika Anda ingin membuat variabel dengan int tipe data, Anda dapat menggunakan declare perintah dengan -i bendera.

$ declare -i pi
$ pi=3
$ echo $pi
3
$ pi=3.14
bash: 3.14: syntax error: invalid arithmetic operator (error token is ".14")

Ingat, declare perintah adalah cara untuk memanipulasi atribut variabel Anda tetapi jangan mengharapkan sistem tipe yang kuat dari declare perintah seperti dalam bahasa pemrograman lainnya.

5. Perintah output ke variabel

Anda dapat menjalankan perintah bash dan menyimpan output dari perintah ke variabel. Anda harus menjalankan perintah di dalam $() seperti di bawah ini dan nanti gunakan variabel untuk diproses lebih lanjut.

$ today_date=$(date)
$ echo ${today_date}
Saturday 11 September 2021 08:53:25 PM IST

6. Menggunakan tanda kutip dengan variabel

Di bash, tanda kutip tunggal dan ganda berperilaku dalam dua cara yang berbeda. Kutipan tunggal akan mencegah ekspansi dan memperlakukan nilai sebagai literal. Tanda kutip ganda akan memungkinkan ekspansi.

Lihatlah contoh di bawah ini. Saya membuat variabel bernama "which_year" dan menjalankan perintah bersama dengan string. Ketika saya menggunakan tanda kutip ganda date perintah akan diperluas tetapi ketika tanda kutip tunggal digunakan date perintah tidak akan berjalan dan disimpan seperti dalam variabel.

$ which_year="I am in year : $(date +%Y)"
$ echo ${which_year}
I am in year : 2021
$ which_year='I am in year : $(date +%Y)'
$ echo ${which_year}
I am in year : $(date +%Y)'

7. Menghapus variabel

Anda dapat menghapus variabel menggunakan unset memerintah.

Unset perintah menghapus nilai dan atribut dari variabel dan fungsi.

Anda dapat menggunakan unset dengan -v tandai yang menunjuk ke variabel atau hanya unset perintah yang secara default pertama kali memeriksa definisi variabel dan menghapusnya.

$ echo ${which_year}
$ unset -v which_year (or) unset which_year
$ echo ${which_year}

Untuk detail selengkapnya, lihat unset bagian bantuan perintah.

$ unset --help

8. Variabel hanya-baca

Status read-only berarti Anda tidak dapat mengubah nilai atau menghapus variabel setelah dibuat. Ada dua cara untuk membuat variabel read-only.

Gunakan readonly bawaan bash untuk membuat variabel hanya-baca.

$ readonly var1="This is a readonly variable"

Atau, Anda dapat menggunakan declare perintah dengan -r bendera.

$ declare -r var2="This is a readonly variable too"

Anda tidak dapat menetapkan ulang atau menghapus pengaturan readonly nilai variabel, itu akan menimbulkan kesalahan.

$ var2="Reassigning with new value"
bash: var2: readonly variable
$ unset var1
bash: unset: var1: cannot unset: readonly variable

9. Bash variabel khusus bawaan

Bash memiliki beberapa variabel bawaan khusus yang didedikasikan untuk menyimpan hasil tertentu. Lihatlah daftar variabel di bawah ini.

$? = Stores exit status of last ran the command.
$$ = Stores process ID for your bash session.
$0 = Script name.
$1 .. $9 = Arguments passed to the script.
$# = Count the length of values
[email protected], $* = Stores array of all values.

9.1. Status keluar ($?)

Setiap perintah Linux yang Anda jalankan memiliki kode keluar terkait (0-255). Nol menunjukkan keberhasilan dan sisanya menunjukkan kegagalan dengan arti yang berbeda.

$ whoami
$ echo $?
0
$ asdf # WRONG COMMAND
$ echo $?
127

9.2. ID Proses ($$)

Menggunakan $$ operator, Anda bisa mendapatkan ID proses bash. Jika Anda menjalankannya dari terminal, itu akan memberi Anda id proses untuk sesi Anda saat ini.

$ echo $$
195777 # PROCESS ID OF MY CURRENT TERMINAL SESSION

9.3. Nama skrip &argumen ($0-$9)

Argumen dapat diteruskan ke skrip Anda dan Anda mungkin telah menggunakannya dalam kehidupan sehari-hari. Lihat id perintah yang menerima nama pengguna sebagai argumen.

$ id karthick
uid=1000(karthick) gid=1000(karthick) groups=1000(karthick),4(adm),27(sudo),119(lpadmin),998(docker)

Demikian pula, Anda dapat membuat skrip yang menerima argumen. Buat contoh skrip shell dan salin/tempel cuplikan berikut di dalamnya.

cat > main.sh
#!/bin/bash

echo "+ script_name=$0 "
echo "+ first_argument=$1 "
echo "+ second_argument=$2 "
echo "+ third_argument=$3 "

Sekarang jalankan skrip dan berikan argumen. Saya memberikan 1 hingga 3 sebagai argumen. $0 mengambil nama skrip dengan jalur absolut karena saya melewati jalur absolut dan $1 ke $3 ditugaskan dengan argumen masing-masing berlalu.

$ /home/karthick/main.sh 1 2 3
+ script_name=/home/karthick/main.sh 
+ first_argument=1 
+ second_argument=2 
+ third_argument=3 

9.4. Panjang nilai ($#)

Menggunakan $# , Anda dapat menghitung jumlah total argumen yang diteruskan atau menghitung panjang nilai apa pun. Lihatlah contoh di bawah ini. Awalan nama variabel dengan # dan itu akan mencetak panjang nilai alih-alih nilai sebenarnya.

$ site_name="OSTechnix"
$ echo ${#site_name}
9

10. Cakupan variabel

Penting bagi Anda untuk memahami ruang lingkup variabel. Saat Anda membuat variabel baik di terminal atau melalui skrip Shell, variabel itu terikat dan hanya tersedia untuk sesi itu. Anda juga dapat mengatakannya sebagai variabel lokal. Jika Anda mencoba mengakses variabel dari sesi lain, variabel tidak akan tersedia.

Lihatlah gambar di bawah ini yang akan memberi Anda pemahaman yang baik tentang apa yang terjadi.

  1. Buat variabel site_name="OSTechnix" dari shell Anda saat ini dan akses variabelnya.
  2. Gunakan $$ variable untuk melihat sesi mana Anda berada.
  3. Buat sesi bash baru dengan mengetik "bash" .
  4. Coba akses variabel site_name dari sesi ini. Anda akan mendapatkan output kosong yang merupakan perilaku default di bash.
  5. Keluar dari sesi baru dengan mengetik "Exit" dan sekarang coba akses variabel dan Anda akan dapat mengakses variabel.

Jika Anda ingin mengakses variabel secara global dari sesi apa pun, Anda harus menggunakan export perintah yang akan membuat variabel tersedia untuk diakses di semua sesi/proses anak yang dibuat dari sesi Anda saat ini.

$ site_name="OSTechnix"
$ export site_name

Atau

$ export site_name="OSTechnix"
$ bash
$ echo ${site_name}

Anda bisa mendapatkan daftar variabel yang akan diekspor dengan mengetikkan "export" dari terminal. Anda akan mendapatkan daftar variabel lingkungan dan yang ditentukan pengguna.

$ export

11. Variabel lingkungan

Sampai sekarang kita telah melihat bagaimana bekerja dengan variabel yang ditentukan pengguna. Di bagian pendahuluan, saya menyebutkan bash mendukung variabel lingkungan. Kumpulan variabel ini akan dimuat saat Anda memulai sesi bash dan dikelola oleh bash. Variabel lingkungan ini digunakan oleh aplikasi untuk menentukan perilaku.

Misalnya, nano disetel sebagai editor default untuk mengedit crontab . Jika saya ingin menggunakan Vim alih-alih nano, saya dapat mengatur EDITOR env variabel dan crontab akan memeriksa variabel lingkungan ini dan menggunakannya.

$ export EDITOR="vim"
$ crontab -e

Perhatian: Variabel Anda hanya terikat pada sesi Anda saat ini. Jika Anda ingin membuatnya persisten, Anda harus memasukkannya ke ~/.bashrc atau ~/.bash_profile .

Anda bisa mendapatkan daftar variabel lingkungan dengan menjalankan "printenv" memerintah. Anda akan melihat variabel lingkungan didefinisikan dengan huruf kapital.

$ printenv

Anda juga dapat mengakses variabel lingkungan tertentu dengan perintah printenv. Berikut adalah beberapa variabel lingkungan umum yang akan Anda temui.

$ printenv USER # PRINTS USER NAME
karthick
$ printenv HOME # USER HOME DIRECTORY LOCATION
/home/karthick
$ printenv PWD # PRESSENT WORKING DIRECTORY
/home/karthick
$ printenv SHELL # WHICH SHELL I AM USING NOW
/bin/bash
$ printenv PATH # PATH WHICH IS USED BY BASH TO CHECK AND RUN COMMANDS
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Kesimpulan

Dalam panduan variabel Bash ini, kami memulai dengan pengenalan singkat tentang variabel dan cara membuat, mengakses, mengubah, dan menghapus di bagian masing-masing. Dan kemudian kita telah melihat apa perbedaan antara variabel yang ditentukan pengguna dan variabel lingkungan. Coba jelajahi daftar variabel lingkungan yang dimuat di sesi Anda yang akan memberi Anda pemahaman yang baik tentang Bash.

Bacaan terkait:

  • Skrip Bash – Untuk Pengulangan Dijelaskan Dengan Contoh
  • Bash Scripting – Sementara Dan Sampai Perulangan Dijelaskan Dengan Contoh
  • Bash Scripting – Fungsi Dijelaskan Dengan Contoh
  • Perintah Bash Echo Dijelaskan Dengan Contoh Di Linux
  • Tutorial Bash Heredoc Untuk Pemula
  • Pengalihan Bash Dijelaskan Dengan Contoh
  • Perbedaan Antara Mendefinisikan Variabel Bash Dengan Dan Tanpa Ekspor

Linux
  1. Skrip bash(I)

  2. Pernyataan Bash If-Else Dengan Contoh

  3. Alias ​​​​dengan variabel di bash

  1. Cara Menulis Skrip Bash dengan Contoh

  2. Perbedaan Antara Mendefinisikan Variabel Bash Dengan Dan Tanpa ekspor

  3. Perintah Bash Echo Dijelaskan Dengan Contoh Di Linux

  1. Pengalihan Bash Dijelaskan Dengan Contoh

  2. Bash Scripting – Sementara Dan Sampai Loop Dijelaskan Dengan Contoh

  3. Bash Scripting – Untuk Loop Dijelaskan Dengan Contoh