GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan Antara Mendefinisikan Variabel Bash Dengan Dan Tanpa ekspor

Saya telah menambahkan "ekspor HISTCONTROL=ignoredups" . ini baris di ~/.bashrc file untuk menghindari entri duplikat dalam riwayat Bash di desktop Linux saya. Apakah Anda memperhatikan bahwa saya mengawali HISTCONTROL variabel dengan "export" ? Tahukah Anda - apa itu "export" pilihan untuk? Jika Anda bertanya-tanya apa perbedaan antara mendefinisikan variabel bash dengan dan tanpa opsi ekspor, baca terus!

Perbedaan Antara Mendefinisikan Variabel Bash Dengan Dan Tanpa Ekspor

Kami mendefinisikan variabel dengan export untuk membuatnya tersedia untuk semua sub-proses (atau proses anak). Artinya - jika Anda mendefinisikan variabel dengan export seperti di bawah ini,

export variable_name=value

Variabel tersedia untuk setiap sub-proses Anda menjalankan dari proses shell itu.

Jika Anda mendefinisikan variabel tanpa export seperti di bawah ini,

variable_name=value

Variabel terbatas pada shell dan tidak tersedia untuk sub-proses lainnya. Anda dapat menggunakannya untuk variabel sementara dan/atau loop.

Izinkan saya untuk menunjukkan sebuah contoh, sehingga Anda dapat memahaminya dengan lebih baik.

Biarkan saya mendefinisikan sebuah variabel bernama "ostechnix" tanpa "export" seperti di bawah ini:

$ ostechnix="Welcome to ostechnix.com blog!"

Sekarang tampilkan nilainya menggunakan perintah "echo":

$ echo $ostechnix

Ini akan menampilkan nilai variabel ostechnix:

Welcome to ostechnix.com blog!

Sekarang, mulai sesi shell Bash baru dengan menjalankan perintah berikut:

$ bash

Kemudian, coba tampilkan nilai variabel ostechnix menggunakan echo perintah:

$ echo $ostechnix

Lihat? Itu tidak mengembalikan apa pun! Anda hanya melihat output kosong. Oleh karena itu terbukti bahwa ketika kita mendefinisikan variabel tanpa export , itu tidak akan tersedia untuk proses anak.

Mari kita definisikan kembali variabel yang sama dengan export pilihan:

$ export ostechnix="Welcome to ostechnix.com blog!"

Menampilkan nilai variabel:

$ echo $ostechnix

Contoh keluaran:

Welcome to ostechnix.com blog!

Mulai sesi shell baru:

$ bash

Coba lagi untuk menampilkan nilai variabel:

$ echo $ostechnix

Sekarang akan mengembalikan nilainya.

Oleh karena itu, ekspor membuat variabel tersedia untuk proses turunan lainnya di lingkungan shell tersebut.


Linux
  1. Perbedaan Antara ' Dan ” Di Command Line (bash)??

  2. Perbedaan Antara [[ $a ==Z* ]] Dan [ $a ==Z* ]?

  3. Perbedaan Antara Variabel Shell Yang Diekspor Dan Yang Tidak Di Bash?

  1. Alias ​​​​dengan variabel di bash

  2. Apa perbedaan antara #!/usr/bin/env bash dan #!/usr/bin/bash?

  3. Ekspor variabel dari bash dan gunakan dengan Python

  1. Impor fungsi dan variabel ke Bash dengan perintah sumber

  2. Perbedaan antara perintah dalam skrip bash dan perintah di terminal

  3. Apa perbedaan antara $(CC) dan $CC?