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 MAIL 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.