Skip to content

emka.web.id

Menu
  • Home
  • Indeks Artikel
  • Tutorial
  • Tentang Kami
Menu

Bash Variabel Khusus ($0, $?, $#, $@, $$, $*)


Bash adalah shell kuat yang menyediakan berbagai macam variabel khusus yang dapat digunakan untuk memanipulasi dan mengontrol perilaku skrip. Variabel ini memberikan informasi penting tentang lingkungan tempat skrip dijalankan, termasuk argumen baris perintah, ID proses saat ini, dan status perintah yang terakhir dieksekusi.
Advertisement
Dalam artikel ini, kami akan memberikan panduan mendalam untuk semua variabel khusus bash, termasuk contoh penggunaannya dan jebakan umum yang harus dihindari.
`$0` – Nama skrip yang sedang dieksekusi. `$1-$9` – Sembilan argumen baris perintah pertama. `$#` – Jumlah argumen baris perintah. `$*` – Semua argumen baris perintah sebagai string tunggal. `[email protected]` – Semua argumen baris perintah sebagai larik. `$?` – Status keluar dari perintah yang terakhir dieksekusi. `$$` – ID proses dari shell saat ini. `$!` – ID proses dari perintah background terakhir.
Mari kita bahas variabel khusus secara detail dengan contoh.
$0 – Nama skrip yang sedang dieksekusi

Dalam bash, $0 adalah parameter khusus yang menyimpan nama skrip atau shell yang sedang dieksekusi. Itu juga dikenal sebagai "nama" atau "argumen nol" dari skrip.

Misalnya, Anda memiliki skrip bernama "myscript.sh" yang ingin Anda jalankan dari direktori mana pun. Dalam hal ini, Anda dapat menggunakan variabel $0 untuk menentukan nama skrip yang sedang dieksekusi:


#!/bin/bash echo "Skrip yang sedang berjalan adalah: $0"12#!/bin/bashecho"Skrip yang sedang berjalan adalah: $0"


Anda juga dapat menentukan direktori tempat skrip berada dan kemudian menggunakan direktori tersebut untuk menemukan file apa pun yang dibutuhkan skrip .


#!/bin/bash SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" echo "Skrip dijalankan dari $SCRIPT_DIR"123#!/bin/bashSCRIPT_DIR="$( cd "$(dirname"${BASH_SOURCE[0]}")" && pwd )"echo"Skrip dijalankan dari $SCRIPT_DIR "

$1, $2, …, $9 – Argumen baris perintah

Variabel $1, $2, …, $9 berisi sembilan argumen baris perintah pertama yang diteruskan ke skrip. Variabel-variabel ini berguna untuk membuat skrip shell yang menerima input pengguna.

Misalnya, misalkan Anda memiliki skrip bernama "greet.sh" yang menggunakan nama sebagai argumen baris perintah pertamanya. Dalam hal ini, Anda dapat menggunakan variabel $1 untuk mengambil nama dan kemudian menggunakannya di output skrip.


#!/bin/bash echo "Halo, $1!"12#!/bin/bashecho"Halo, $1!"


Jika skrip perlu mengakses lebih dari sembilan argumen baris perintah, ${10}, ${11}, …, ${N } variabel dapat digunakan untuk mengambilnya. Variabel ini dapat digunakan dengan perintah shift untuk memproses argumen baris perintah secara berkelompok. Pastikan variabel diapit dengan {} brackets.
$# – Jumlah argumen baris perintah

Variabel $# berisi jumlah argumen baris perintah yang diteruskan ke skrip. Variabel ini berguna untuk membuat skrip shell yang memvalidasi input pengguna.

Misalnya, misalkan Anda memiliki skrip bernama "validate.sh" yang memerlukan dua argumen baris perintah. Dalam hal ini, Anda dapat menggunakan variabel $# untuk memastikan bahwa jumlah argumen yang benar disediakan.


#!/bin/bash jika [[ $# -ne 2 ]] Kemudian echo "Penggunaan: validasi.sh [nama pengguna] [kata sandi]" keluar 1 fi123456#!/bin/bashif[[$# -ne 2 ]]lalu    echo"Penggunaan:validasi.sh [nama pengguna] [sandi]"    exit1fi

$* – Semua argumen baris perintah sebagai string

tunggalVariabel $* berisi semua perintah -argumen baris diteruskan ke skrip sebagai string tunggal. Variabel ini berguna untuk membuat skrip shell yang perlu memanipulasi seluruh baris perintah string.

Misalnya, misalkan Anda memiliki skrip bernama "join.sh" yang menggabungkan dua string yang disediakan sebagai argumen baris perintah. Dalam hal ini, Anda dapat menggunakan variabel $* untuk menggabungkan strings.


#!/bin/bash join="$*12#!/bin/bashjoined="$*

[email protected] – Semua argumen baris perintah sebagai array

Variabel [email protected] berisi semua argumen baris perintah yang diteruskan ke skrip sebagai array. Variabel ini berguna untuk membuat skrip shell yang perlu memanipulasi argumen baris perintah individual.

Misalnya, misalkan Anda memiliki skrip bernama "list.sh" yang mencantumkan semua file dalam direktori yang disediakan sebagai argumen baris perintah. Dalam hal ini, Anda dapat menggunakan variabel [email protected] untuk mengulangi setiap nama direktori dan mencantumkan file di direktori tersebut.


#!/bin/bash untuk direktori di "$@" Mengerjakan echo "Menampilkan file di $direktori:" ls -l $direktori done123456#!/bin/bashfordirectory in"[email protected]"do    echo"Cantumkan file di $directory:"    ls-l$directorydone

$? – Status keluar dari perintah yang terakhir dieksekusi

The $? variabel berisi status keluar dari perintah yang terakhir dieksekusi. Variabel ini sangat membantu dalam membuat skrip shell yang perlu menangani kesalahan atau mengambil tindakan berbeda tergantung pada keberhasilan atau kegagalan perintah.

Misalnya, misalkan Anda memiliki skrip bernama "create-file.sh" yang membuat file dan mengembalikan status keluar yang menunjukkan keberhasilan atau kegagalan. Dalam hal ini, Anda dapat menggunakan $? variabel untuk memeriksa status keluar dan mengambil tindakan yang sesuai.


#!/bin/bash sentuh myfile.txt jika [[ $? -eq 0 ]] Kemudian gema "File berhasil dibuat" kalau tidak gema "Kesalahan membuat file" fi12345678#!/bin/bashtouchmyfile.txtif[[$?-eq0]]kemudian    echo"File berhasil dibuat"else    echo"Kesalahan membuat file"fi

$$ – ID proses dari shell

saat iniVariabel $$ berisi ID proses dari skrip saat ini. Variabel ini berguna untuk membuat skrip shell yang perlu mengelola banyak proses atau membuat nama file unik.

Misalnya, Anda memiliki skrip bernama "log.sh" yang mencatat informasi ke file dengan nama unik berdasarkan ID proses. Dalam hal ini, Anda dapat menggunakan variabel $$ untuk menghasilkan nama file unik.


#!/bin/bash LOG_FILE="log_$$.txt" echo "Log ke file $LOG_FILE"123#!/bin/bashLOG_FILE="log_$$.txt"echo"Log ke file $LOG_FILE"

$! – ID proses dari perintah latar belakang terakhir

The $! variabel berisi ID proses dari perintah latar belakang terakhir yang dijalankan oleh skrip. Variabel ini berguna untuk membuat skrip shell yang perlu mengelola banyak proses atau memantau progres perintah yang berjalan lama.

Misalnya, Anda memiliki skrip bernama "background.sh" yang menjalankan perintah di latar belakang dan mencatat progresnya. Dalam hal ini, Anda dapat menggunakan $! variabel untuk memantau kemajuan perintah.


#!/bin/bash perintahku & pid=$! while ps -p $pid >/dev/null; Mengerjakan gema "Perintah masih berjalan" tidur 1 Selesai echo "Perintah telah selesai"12345678#!/bin/bashmycommand&pid=$!sementara ps -p $pid >/dev/null;do    echo"Perintah masih berjalan"    sleep1doneecho"Perintah telah selesai"

Kesimpulan

Kesimpulannya, bash menyediakan variabel khusus yang penting informasi tentang lingkungan tempat skrip dijalankan. Variabel-variabel ini memungkinkan Anda membuat skrip shell yang lebih fleksibel, kuat, dan tahan kesalahan. Dengan menguasai penggunaan variabel-variabel ini, Anda dapat meningkatkan keterampilan skrip shell Anda ke level berikutnya.



Referensi tecadmin.comArtikel Diperbarui pada: March 15, 2023
Kontributor: Syauqi Wiryahasana
Model: Haifa Manik Intani
Seedbacklink

Recent Posts

TENTANG EMKA.WEB>ID

EMKA.WEB.ID adalah blog seputar teknologi informasi, edukasi dan ke-NU-an yang hadir sejak tahun 2011. Kontak: kontak@emka.web.id.

©2024 emka.web.id Proudly powered by wpStatically