itu sangat aneh bahwa tidak ada halaman manual untuk itu. Saya juga tidak melihatnya.
Pinocchio
Jawaban:
226
Saat Anda menjalankan program, program anak mewarisi variabel lingkungannya dari induknya. Misalnya jika $HOMEdiatur ke /rootdalam induk maka $HOMEvariabel anak juga diatur ke /root.
Ini hanya berlaku untuk variabel lingkungan yang ditandai untuk ekspor. Jika Anda menetapkan variabel pada baris perintah seperti
$ FOO="bar"
Variabel itu tidak akan terlihat dalam proses anak. Tidak, kecuali Anda mengekspornya:
$ export FOO
Anda dapat menggabungkan kedua pernyataan ini menjadi satu di bash (tetapi tidak di sh-old school):
$ export FOO="bar"
Berikut adalah contoh cepat yang menunjukkan perbedaan antara variabel yang diekspor dan yang tidak diekspor. Untuk memahami apa yang terjadi, ketahui yang sh -cmenciptakan proses cangkang anak yang mewarisi lingkungan cangkang induk.
$ FOO=bar
$ sh -c 'echo $FOO'
$ export FOO
$ sh -c 'echo $FOO'
bar
Catatan: Untuk mendapatkan bantuan tentang perintah built-in shell gunakan help export. Shell built-in adalah perintah yang merupakan bagian dari shell Anda dan bukan yang dapat dieksekusi yang independen /bin/ls.
Perintah env, set, dan printenv menampilkan semua variabel lingkungan dan nilainya. env dan set juga digunakan untuk mengatur variabel lingkungan dan sering dimasukkan langsung ke dalam shell. printenv juga dapat digunakan untuk mencetak satu variabel dengan memberikan nama variabel sebagai satu-satunya argumen untuk perintah.
Di Unix, perintah berikut ini juga dapat digunakan, tetapi seringkali bergantung pada shell tertentu.
export VARIABLE=value # for Bourne, bash, and related shells
setenv VARIABLE value # for csh and related shells
Selamat datang di StackOverflow. Perhatikan bahwa shell Bourne klasik membutuhkan: VARIABLE=value; export VARIABLEdaripada menetapkan dan mengekspor sekaligus. The setperintah dalam C Shell adalah untuk variabel shell daripada variabel lingkungan; setenvadalah mitra dari export. The setperintah dalam cangkang Bourne yang diturunkan mencetak semua variabel, bukan hanya diekspor (lingkungan) variabel. Paling tidak secara historis, envperintah itu terpisah dari shell (bukan built-in), meskipun bisa dengan mudah dibuat menjadi built-in. Ini mengatur lingkungan untuk perintah tertentu, bukan shell yang menjalankannya.
Jonathan Leffler
4
exportadalah perintah built-in dari bashshell dan varian shell Bourne lainnya . Ini digunakan untuk menandai variabel shell untuk mengekspor ke proses anak.
Jawaban:
Saat Anda menjalankan program, program anak mewarisi variabel lingkungannya dari induknya. Misalnya jika
$HOME
diatur ke/root
dalam induk maka$HOME
variabel anak juga diatur ke/root
.Ini hanya berlaku untuk variabel lingkungan yang ditandai untuk ekspor. Jika Anda menetapkan variabel pada baris perintah seperti
Variabel itu tidak akan terlihat dalam proses anak. Tidak, kecuali Anda mengekspornya:
Anda dapat menggabungkan kedua pernyataan ini menjadi satu di bash (tetapi tidak di sh-old school):
Berikut adalah contoh cepat yang menunjukkan perbedaan antara variabel yang diekspor dan yang tidak diekspor. Untuk memahami apa yang terjadi, ketahui yang
sh -c
menciptakan proses cangkang anak yang mewarisi lingkungan cangkang induk.Catatan: Untuk mendapatkan bantuan tentang perintah built-in shell gunakan
help export
. Shell built-in adalah perintah yang merupakan bagian dari shell Anda dan bukan yang dapat dieksekusi yang independen/bin/ls
.sumber
Unix
Perintah env, set, dan printenv menampilkan semua variabel lingkungan dan nilainya. env dan set juga digunakan untuk mengatur variabel lingkungan dan sering dimasukkan langsung ke dalam shell. printenv juga dapat digunakan untuk mencetak satu variabel dengan memberikan nama variabel sebagai satu-satunya argumen untuk perintah.
Di Unix, perintah berikut ini juga dapat digunakan, tetapi seringkali bergantung pada shell tertentu.
Anda bisa melihat-lihat di ini di
sumber
VARIABLE=value; export VARIABLE
daripada menetapkan dan mengekspor sekaligus. Theset
perintah dalam C Shell adalah untuk variabel shell daripada variabel lingkungan;setenv
adalah mitra dariexport
. Theset
perintah dalam cangkang Bourne yang diturunkan mencetak semua variabel, bukan hanya diekspor (lingkungan) variabel. Paling tidak secara historis,env
perintah itu terpisah dari shell (bukan built-in), meskipun bisa dengan mudah dibuat menjadi built-in. Ini mengatur lingkungan untuk perintah tertentu, bukan shell yang menjalankannya.export
adalah perintah built-in daribash
shell dan varian shell Bourne lainnya . Ini digunakan untuk menandai variabel shell untuk mengekspor ke proses anak.sumber
export
digunakan untuk mengatur variabel lingkungan. Sebagai contoh:Akan mengatur editor teks default Anda menjadi
pico
perintah.sumber