Solusi 1:
Cara terbaik
export VAR=value
Perbedaannya
Melakukan
VAR=value
hanya menetapkan variabel untuk durasi skrip (.bashrc
pada kasus ini). Proses anak (jika ada) dari skrip tidak akan memiliki VAR yang ditentukan, dan setelah skrip keluar VAR
hilang.
export VAR=value
secara eksplisit menambahkan VAR
ke daftar variabel yang diteruskan ke proses anak. Ingin mencobanya? Buka shell, lakukan
PS1="foo > "
bash --norc
Shell baru mendapatkan prompt default. Jika sebaliknya Anda melakukan sesuatu seperti
export PS1="foo > "
bash --norc
shell baru mendapatkan perintah yang baru saja Anda atur.
Perbarui: seperti yang dicatat oleh Ian Kelling di bawah variabel yang diatur dalam .bashrc
bertahan di shell yang bersumber .bashrc
. Lebih umum lagi setiap kali shell mencari skrip (menggunakan source scriptname
command) variabel yang diatur dalam skrip bertahan selama masa pakai shell.
Solusi 2:
Keduanya tampaknya berfungsi dengan baik, tetapi menggunakan export akan memastikan variabel tersedia untuk subkulit dan program lainnya. Untuk mengujinya, coba ini.
Tambahkan dua baris ini ke file .bashrc Anda
TESTVAR="no export"
export MYTESTVAR="with export"
Kemudian buka shell baru.
Menjalankan echo $TESTVAR
dan echo $MYTESTVAR
akan menampilkan isi dari setiap variabel. Sekarang di dalam shell yang sama hapus kedua baris itu dari file .bashrc Anda dan jalankan bash
untuk memulai subkulit.
Menjalankan echo $TESTVAR
akan memiliki keluaran kosong, tetapi menjalankan echo $MYTESTVAR
akan menampilkan "dengan ekspor"