Substitusi Variabel Bersarang dan Variabel BASH Standar di Linux - Bagian 11
Dua artikel terakhir di BASH Shell, di mana kami membahas variabel secara mendetail, sangat dihargai oleh pembaca kami. Kami sebagai Tim Tecmint sangat ingin memberi Anda topik-topik Terkini, Terkini, dan relevan yang dibahas secara mendetail. Terlebih lagi kami selalu berusaha menyentuh perspektif utama dari topik terkait.
Ini adalah artikel terakhir tentang Variabel Linux di mana kita akan melihat substitusi variabel dan variabel yang didefinisikan di Shell sebelum menutup topik ini.
Bash melakukan substitusi variabel sebelum perintah benar-benar dijalankan. Linux Bash Shell mencari semua tanda '$' sebelum menjalankan perintah dan menggantinya dengan nilai variabel. Proses substitusi Variabel Bash hanya dilakukan satu kali. Bagaimana jika kita memiliki variabel bertingkat?
Catatan: Yang kami maksud dengan variabel bertumpuk adalah variabel yang dideklarasikan di dalam variabel. Mari kita lihat skenario di atas pada contoh di bawah ini.
Deklarasikan variabel Read-Only dan Executable seperti di bawah ini.
avi@localhost:~$ declare -rx Linux_best_website="linux-console.net"
Periksa nilai variabel yang disimpan.
avi@localhost:~$ printf "%s" "$Linux_best_website"
linux-console.net
Sekarang deklarasikan variabel lain yang lagi-lagi bersifat Read-Only dan Executable.
avi@localhost:~$ declare -rx Linux_website="Linux_best_website"
Sekarang situasinya adalah, kita telah mendefinisikan dua variabel.
'Linux_best_website', yang nilainya adalah “linux-console.net ”
dan, 'Linux_website', yang nilainya adalah “Linux_best_website ”
Apa hasilnya jika kita menjalankan perintah satu baris di bawah ini?
avi@localhost:~$ printf "%s" "$Linux_website"
Pertama-tama ia harus mengganti variabel '$Linux_website', dengan nilai “Linux_best_website ” dan kemudian “$Linux_best_website ” juga merupakan variabel yang nilainya yaitu “linux-console.net ”. Jadi hasil akhir dari menjalankan perintah di bawah ini seharusnya adalah.
avi@localhost:~$ printf "%s" "$Linux_website"
linux-console.net
Namun sayangnya, situasinya tidak seperti ini, output yang kita dapatkan adalah Linux_best_website.
Alasan? Ya! Bash gantikan nilai variabel hanya sekali. Bagaimana dengan skrip dan program yang rumit di mana kita perlu sering mengganti variabel dan juga perlu mengganti variabel lebih dari satu kali?
Inilah perintah 'eval' yang melakukan pekerjaan tambahan substitusi variabel lebih dari satu kali dalam sebuah skrip. Berikut adalah contoh untuk membuat keseluruhannya berfungsi sejelas kaca.
Deklarasikan variabel x yang nilainya 10.
avi@localhost:~/Desktop$ declare x=10
Periksa nilai variabel x yang baru saja kita definisikan.
avi@localhost:~/Desktop$ echo $yx
x10
Deklarasikan variabel y yang nilainya adalah x.
avi@localhost:~/Desktop$ declare y=x
Periksa nilai variabel y yang baru saja kita definisikan.
avi@localhost:~/Desktop$ echo $y
x
Berikut adalah masalah substitusi variabel satu kali BASH, yang tidak melakukan putaran substitusi variabel tambahan. Kami menggunakan perintah 'eval' untuk memperbaikinya.
avi@localhost:~/Desktop$ eval y=$x
Sekarang periksa Nilai variabel 'y'.
avi@localhost:~/Desktop$ echo $y
10
Hore! Masalah telah diperbaiki dan perintah 'eval' memenangkan perlombaan :)
Belum lagi, perintah 'eval' sangat membantu dalam program skrip besar dan merupakan alat yang sangat berguna.
Bagian terakhir namun tidak kalah pentingnya dari posting ini adalah variabel yang telah ditentukan BASH. TIDAK! Jangan panik melihat daftar ini. Anda tidak perlu mengingat seluruh daftar sebelum mulai menulis skrip kecuali beberapa. Sebagai bagian dari proses pembelajaran, kami menyajikan Daftar variabel BASH yang telah ditentukan sebelumnya.
No. | BASH VARIABLE | RESULT |
1 | auto_resume | Process command completion for the stopped jobs. |
2 | BASH | PATH of the shell. |
3 | BASH_ENV | Shows the name of the profile file |
4 | BASH_VERSION | Shows the version of Bash |
5 | BASH_VERSINFO | Shows Detailed version information. |
6 | BASH_VERSINFO[0] | The major version number (the release). |
7 | BASH_VERSINFO[1] | The minor version number (the version). |
8 | BASH_VERSINFO[2] | The patch level. |
9 | BASH_VERSINFO[3] | The build version. |
10 | BASH_VERSINFO[4] | The release status (for example, beta1 ). |
11 | BASH_VERSINFO[5] | The value of MACHTYPE . |
12 | CDPATH | List of directories separated by colon. |
13 | COLUMNS | Number of Characters per line on Standard Output. |
14 | EUID | User ID of the current user. |
15 | FCEDIT | The default text editor for the fc command. |
16 | FUNCNAME | The name of the fun |
17 | GROUPS | Groups of which the user is a Member. |
18 | HISTFILE | The file containing the command history. |
19 | HOME | The name of your home directory. |
20 | LINES | Number of horizontal lines on Standard Output. |
21 | Name of a file to check for incoming mail | |
22 | OSTYPE | Name of the operating system. |
23 | OLDPWD | The previous working directory |
24 | PWD | The current working directory |
25 | RANDOM | Prints a random number |
26 | SHELL | The preferred shell to use |
27 | TIMEFORMAT | The format for the time command. |
28 | UID | The ID of the current user |
Ada banyak sekali daftar Variabel BASH Standar. Kami telah mencoba membuat daftar yang paling sering digunakan.
Itu saja untuk saat ini. Saya akan berada di sini lagi dengan artikel menarik lainnya. Sampai saat itu, pantau terus dan terhubung dengan TecMint. Jangan lupa untuk memberi kami umpan balik Anda yang berharga di bagian komentar di bawah.