Anda hanya perlu export
variabel yang harus "dilihat" oleh program lain yang Anda luncurkan di shell, sementara yang hanya digunakan di dalam shell itu sendiri tidak perlu export
diedit.
Inilah yang dikatakan halaman manual:
The supplied names are marked for automatic export to the environ‐
ment of subsequently executed commands. If the -f option is given,
the names refer to functions. If no names are given, or if the -p
option is supplied, a list of all names that are exported in this
shell is printed. The -n option causes the export property to be
removed from each name. If a variable name is followed by =word,
the value of the variable is set to word. export returns an exit
status of 0 unless an invalid option is encountered, one of the
names is not a valid shell variable name, or -f is supplied with a
name that is not a function.
Ini dapat ditunjukkan dengan yang berikut:
$ MYVAR="value"
$ echo ${MYVAR}
value
$ echo 'echo ${MYVAR}' > echo.sh
$ chmod +x echo.sh
$ ./echo.sh
$ export MYVAR="value-exported"
$ ./echo.sh
value-exported
Penjelasan:
- Saya pertama kali ditetapkan
${MYVAR}
menjadi variabel Shell dengan MYVAR="value"
. Menggunakan echo
I can echo nilainya karena echo adalah bagian dari shell.
- Lalu saya buat
echo.sh
. Itu adalah skrip kecil yang pada dasarnya melakukan hal yang sama, hanya bergema ${MYVAR}
, tetapi perbedaannya adalah skrip akan berjalan dalam proses yang berbeda karena skrip terpisah.
- Ketika memanggilnya
echo.sh
tidak menghasilkan apa-apa, karena proses baru tidak mewarisi${MYVAR}
- Lalu saya ekspor
${MYVAR}
ke lingkungan saya dengan export
kata kunci
- Ketika saya sekarang menjalankan hal yang sama
echo.sh
lagi, itu menggemakan konten ${MYVAR}
karena mendapatkannya dari lingkungan
Jadi, untuk menjawab pertanyaanmu:
Itu tergantung di mana variabel akan digunakan, apakah Anda harus mengekspornya atau tidak.