Perintah ekspor UNIX [ditutup]

158

Saya mencoba memahami penggunaan exportperintah.

Saya mencoba menggunakan man export, tetapi tidak ada manual untuk perintah ini.

Adakah yang bisa membantu saya memahami penggunaan exportdi UNIX?

Jake
sumber
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.

John Kugelman
sumber
16

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.

export VARIABLE=value  # for Bourne, bash, and related shells
setenv VARIABLE value  # for csh and related shells

Anda bisa melihat-lihat di ini di

pengguna931841
sumber
4
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
0

exportdigunakan untuk mengatur variabel lingkungan. Sebagai contoh:

export EDITOR=pico

Akan mengatur editor teks default Anda menjadi picoperintah.

Icarus
sumber