GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan Ekspor Di .bashrc?

Saya perhatikan di .bashrc saya bahwa beberapa baris memiliki export di depan mereka, seperti

export HISTTIMEFORMAT="%b-%d  %H:%M  "
...
export MYSQL_HISTFILE="/root/.mysql_history"

sedangkan yang lain tidak, seperti

HISTSIZE=100000

Saya bertanya-tanya apakah, pertama, ini benar, dan kedua apa aturan untuk menggunakan export di .bashrc .

Jawaban yang Diterima:

Anda hanya perlu export untuk variabel yang seharusnya “dilihat” oleh program lain yang Anda luncurkan di shell, sedangkan variabel yang hanya digunakan di dalam shell itu sendiri tidak perlu export ed.

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.

Hal ini dapat ditunjukkan dengan berikut ini:

$ 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 mengatur ${MYVAR} menjadi variabel Shell dengan MYVAR="value" . Menggunakan echo Saya dapat menggemakan nilainya karena gema adalah bagian dari shell.
  • Lalu saya membuat echo.sh . Itu adalah skrip kecil yang pada dasarnya melakukan hal yang sama, hanya menggemakan ${MYVAR} , tetapi perbedaannya adalah ini akan berjalan dalam proses yang berbeda karena merupakan skrip yang terpisah.
  • Saat memanggil echo.sh itu tidak menghasilkan apa-apa, karena proses baru tidak mewarisi ${MYVAR}
  • Lalu saya mengekspor ${MYVAR} ke lingkungan saya dengan export kata kunci
  • Saat ini saya menjalankan echo.sh yang sama lagi, itu menggemakan konten ${MYVAR} karena didapat dari lingkungan

Jadi untuk menjawab pertanyaan Anda:

Tergantung di mana variabel akan digunakan, apakah Anda harus mengekspornya atau tidak.

Terkait:Bagaimana cara mengekspor log obrolan Google??
Linux
  1. Menggunakan UFW sebagai Daftar Hitam IP

  2. Git Pelengkapan otomatis?

  3. Bagaimana cara menulis karakter non-ASCII menggunakan gema?

  1. Periksa konektivitas basis data menggunakan skrip Shell

  2. Bagaimana cara mengekspor variabel secara permanen di Linux?

  3. Menginstal dan menggunakan XeTeX

  1. Menjebak Kesalahan Dalam Substitusi Perintah Menggunakan “-o Errtrace” (yaitu Set -e)?

  2. Freebsd – Bagaimana Cara Mengekspor Folder Ke Subnet Menggunakan Nfs Di Freebsd 9.0?

  3. Apa yang Digema $? Mengerjakan??